<html><head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<title>Spring Framework 参考文档</title><link rel="stylesheet" type="text/css" href="css/manual-multipage.css"><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="Spring Framework 参考文档"><link rel="next" href="spring-introduction.html" title="第一部分.&nbsp;Spring Framework概述"></head><body class="firstpage" bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Spring Framework 参考文档</th></tr><tr><td width="20%" align="left">&nbsp;</td><th width="60%" align="center">&nbsp;</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="spring-introduction.html">下一页</a></td></tr></table><hr></div><div lang="en" class="book"><div class="titlepage"><div><div><h1 class="title"><a name="d5e1"></a>Spring Framework 参考文档</h1></div><div><div class="authorgroup"><h2>作者</h2>
<span class="author"><span class="firstname">Rod</span> <span class="surname">Johnson</span></span>
, <span class="author"><span class="firstname">Juergen</span> <span class="surname">Hoeller</span></span>
, <span class="author"><span class="firstname">Keith</span> <span class="surname">Donald</span></span>
, <span class="author"><span class="firstname">Colin</span> <span class="surname">Sampaleanu</span></span>
, <span class="author"><span class="firstname">Rob</span> <span class="surname">Harrop</span></span>
, <span class="author"><span class="firstname">Thomas</span> <span class="surname">Risberg</span></span>
, <span class="author"><span class="firstname">Alef</span> <span class="surname">Arendsen</span></span>
, <span class="author"><span class="firstname">Darren</span> <span class="surname">Davison</span></span>
, <span class="author"><span class="firstname">Dmitriy</span> <span class="surname">Kopylenko</span></span>
, <span class="author"><span class="firstname">Mark</span> <span class="surname">Pollack</span></span>
, <span class="author"><span class="firstname">Thierry</span> <span class="surname">Templier</span></span>
, <span class="author"><span class="firstname">Erwin</span> <span class="surname">Vervaet</span></span>
, <span class="author"><span class="firstname">Portia</span> <span class="surname">Tung</span></span>
, <span class="author"><span class="firstname">Ben</span> <span class="surname">Hale</span></span>
, <span class="author"><span class="firstname">Adrian</span> <span class="surname">Colyer</span></span>
, <span class="author"><span class="firstname">John</span> <span class="surname">Lewis</span></span>
, <span class="author"><span class="firstname">Costin</span> <span class="surname">Leau</span></span>
, <span class="author"><span class="firstname">Mark</span> <span class="surname">Fisher</span></span>
, <span class="author"><span class="firstname">Sam</span> <span class="surname">Brannen</span></span>
, <span class="author"><span class="firstname">Ramnivas</span> <span class="surname">Laddad</span></span>
, <span class="author"><span class="firstname">Arjen</span> <span class="surname">Poutsma</span></span>
, <span class="author"><span class="firstname">Chris</span> <span class="surname">Beams</span></span>
, <span class="author"><span class="firstname">Tareq</span> <span class="surname">Abedrabbo</span></span>
, <span class="author"><span class="firstname">Andy</span> <span class="surname">Clement</span></span>
, <span class="author"><span class="firstname">Dave</span> <span class="surname">Syer</span></span>
, <span class="author"><span class="firstname">Oliver</span> <span class="surname">Gierke</span></span>
, <span class="author"><span class="firstname">Rossen</span> <span class="surname">Stoyanchev</span></span>
, <span class="author"><span class="firstname">Phillip</span> <span class="surname">Webb</span></span>
, <span class="author"><span class="firstname">Rob</span> <span class="surname">Winch</span></span>
, <span class="author"><span class="firstname">Brian</span> <span class="surname">Clozel</span></span>
, <span class="author"><span class="firstname">Stephane</span> <span class="surname">Nicoll</span></span>
, <span class="author"><span class="firstname">Sebastien</span> <span class="surname">Deleuze</span></span>
</div><div class="authorgroup"><h2>译者</h2>
<span class="author"><span class="firstname"><a href="mailto:csyfly2003@126.com">momean</a></span></span></div></div><div><p class="releaseinfo">4.2.4.RELEASE</p></div><div><p class="copyright">Copyright © 2004-2015  </p></div><div><div class="legalnotice"><a name="d5e138" href="index.html#d5e138"></a>
<p>本文档的拷贝可供自己使用及分发他人，但不能对这些拷贝收取任何费用，并进一步保证每一份拷贝都包含该版权声明，不论是打印还是以电子形式分发。</p>
</div></div></div><hr></div><div class="toc"><p><b>目录</b></p><dl class="toc"><dt><span class="part"><a href="spring-introduction.html">I. Spring Framework 概述</a></span></dt><dd><dl><dt><span class="chapter"><a href="overview-getting-started-with-spring.html">1. Spring入门</a></span></dt><dt><span class="chapter"><a href="overview.html">2. Spring 框架简介</a></span></dt><dd><dl><dt><span class="section"><a href="overview.html#overview-dependency-injection">2.1. 依赖注入与控制反转</a></span></dt><dt><span class="section"><a href="overview.html#overview-modules">2.2. 模块</a></span></dt><dd><dl><dt><span class="section"><a href="overview.html#overview-core-container">2.2.1. 核心容器</a></span></dt><dt><span class="section"><a href="overview.html#overview-aop-instrumentation">2.2.2. AOP及仪器类</a></span></dt><dt><span class="section"><a href="overview.html#overview-messaging">2.2.3. 消息</a></span></dt><dt><span class="section"><a href="overview.html#overview-data-access">2.2.4. 数据访问/集成</a></span></dt><dt><span class="section"><a href="overview.html#overview-web">2.2.5. Web</a></span></dt><dt><span class="section"><a href="overview.html#overview-testing">2.2.6. 测试</a></span></dt></dl></dd><dt><span class="section"><a href="overview.html#overview-usagescenarios">2.3. 使用场景</a></span></dt><dd><dl><dt><span class="section"><a href="overview.html#dependency-management">2.3.1. 依赖管理与命名约定</a></span></dt><dd><dl><dt><span class="section"><a href="overview.html#overview-spring-dependencies">Spring依赖及依赖Spring</a></span></dt><dt><span class="section"><a href="overview.html#overview-maven-dependency-management">Maven依赖管理</a></span></dt><dt><span class="section"><a href="overview.html#overview-maven-bom">Maven"物料清单"依赖项</a></span></dt><dt><span class="section"><a href="overview.html#overview-gradle-dependency-management">Gradle 依赖管理</a></span></dt><dt><span class="section"><a href="overview.html#overview-ivy-dependency-management">Ivy依赖管理</a></span></dt><dt><span class="section"><a href="overview.html#overview-distribution-zip">分发 Zip 文件</a></span></dt></dl></dd><dt><span class="section"><a href="overview.html#overview-logging">2.3.2. 日志记录</a></span></dt><dd><dl><dt><span class="section"><a href="overview.html#overview-not-using-commons-logging">不使用 Commons Logging</a></span></dt><dt><span class="section"><a href="overview.html#overview-logging-slf4j">使用SLF4J</a></span></dt><dt><span class="section"><a href="overview.html#overview-logging-log4j">使用Log4J</a></span></dt></dl></dd></dl></dd></dl></dd></dl></dd><dt><span class="part"><a href="spring-whats-new.html">II. Spring Framework 4.x 中的新特性</a></span></dt><dd><dl><dt><span class="chapter"><a href="new-in-4.0.html">3. Spring Framework 4.0中的新功能和增强</a></span></dt><dd><dl><dt><span class="section"><a href="new-in-4.0.html#_improved_getting_started_experience">3.1. 改进了入门经验</a></span></dt><dt><span class="section"><a href="new-in-4.0.html#_removed_deprecated_packages_and_methods">3.2. 删除过时的包和方法</a></span></dt><dt><span class="section"><a href="new-in-4.0.html#_java_8_as_well_as_6_and_7">3.3. Java 8 (以及 6 和 7)</a></span></dt><dt><span class="section"><a href="new-in-4.0.html#_java_ee_6_and_7">3.4. Java EE 6 和 7</a></span></dt><dt><span class="section"><a href="new-in-4.0.html#groovy-bean-definition-dsl">3.5. Groovy Bean 定义 DSL</a></span></dt><dt><span class="section"><a href="new-in-4.0.html#_core_container_improvements">3.6. 核心容器改进</a></span></dt><dt><span class="section"><a href="new-in-4.0.html#_general_web_improvements">3.7. 常规 Web 改进</a></span></dt><dt><span class="section"><a href="new-in-4.0.html#_websocket_sockjs_and_stomp_messaging">3.8. WebSocket，SockJS，和STOMP消息</a></span></dt><dt><span class="section"><a href="new-in-4.0.html#_testing_improvements">3.9. 测试改进</a></span></dt></dl></dd><dt><span class="chapter"><a href="new-in-4.1.html">4. Spring Framework 4.1中的新功能和增强</a></span></dt><dd><dl><dt><span class="section"><a href="new-in-4.1.html#_jms_improvements">4.1. JMS 的改进</a></span></dt><dt><span class="section"><a href="new-in-4.1.html#_caching_improvements">4.2. 缓存的改进</a></span></dt><dt><span class="section"><a href="new-in-4.1.html#_web_improvements">4.3. Web 的改进</a></span></dt><dt><span class="section"><a href="new-in-4.1.html#_websocket_messaging_improvements">4.4. WebSocket 消息的改进</a></span></dt><dt><span class="section"><a href="new-in-4.1.html#_testing_improvements_2">4.5. 测试改进</a></span></dt></dl></dd><dt><span class="chapter"><a href="new-in-4.2.html">5. Spring Framework 4.2中的新功能和增强</a></span></dt><dd><dl><dt><span class="section"><a href="new-in-4.2.html#_core_container_improvements_2">5.1. 核心容器改进</a></span></dt><dt><span class="section"><a href="new-in-4.2.html#_data_access_improvements">5.2. 数据访问的改进</a></span></dt><dt><span class="section"><a href="new-in-4.2.html#_jms_improvements_2">5.3. JMS 的改进</a></span></dt><dt><span class="section"><a href="new-in-4.2.html#_web_improvements_2">5.4. Web 的改进</a></span></dt><dt><span class="section"><a href="new-in-4.2.html#_websocket_messaging_improvements_2">5.5. WebSocket 消息的改进</a></span></dt><dt><span class="section"><a href="new-in-4.2.html#_testing_improvements_3">5.6. 测试改进</a></span></dt></dl></dd></dl></dd><dt><span class="part"><a href="spring-core.html">III. 核心技术</a></span></dt><dd><dl><dt><span class="chapter"><a href="beans.html">6. IoC 容器</a></span></dt><dd><dl><dt><span class="section"><a href="beans.html#beans-introduction">6.1. Spring IoC 容器和Bean 简介</a></span></dt><dt><span class="section"><a href="beans.html#beans-basics">6.2. 容器概述</a></span></dt><dd><dl><dt><span class="section"><a href="beans.html#beans-factory-metadata">6.2.1. 配置元数据</a></span></dt><dt><span class="section"><a href="beans.html#beans-factory-instantiation">6.2.2. 实例化容器</a></span></dt><dd><dl><dt><span class="section"><a href="beans.html#beans-factory-xml-import">编写基于XML的配置元数据</a></span></dt></dl></dd><dt><span class="section"><a href="beans.html#beans-factory-client">6.2.3. 容器的使用</a></span></dt></dl></dd><dt><span class="section"><a href="beans.html#beans-definition">6.3. Bean概述</a></span></dt><dd><dl><dt><span class="section"><a href="beans.html#beans-beanname">6.3.1. 命名Bean</a></span></dt><dd><dl><dt><span class="section"><a href="beans.html#beans-beanname-alias">在Bean定义之外为Bean取别名</a></span></dt></dl></dd><dt><span class="section"><a href="beans.html#beans-factory-class">6.3.2. 实例化 bean</a></span></dt><dd><dl><dt><span class="section"><a href="beans.html#beans-factory-class-ctor">使用构造器进行实例化</a></span></dt><dt><span class="section"><a href="beans.html#beans-factory-class-static-factory-method">使用静态工厂方法进行实例化</a></span></dt><dt><span class="section"><a href="beans.html#beans-factory-class-instance-factory-method">使用实例工厂方法进行实例化</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="beans.html#beans-dependencies">6.4. 依赖</a></span></dt><dd><dl><dt><span class="section"><a href="beans.html#beans-factory-collaborators">6.4.1. 依赖注入</a></span></dt><dd><dl><dt><span class="section"><a href="beans.html#beans-constructor-injection">基于构造函数的依赖注入</a></span></dt><dt><span class="section"><a href="beans.html#beans-setter-injection">基于setter的依赖注入</a></span></dt><dt><span class="section"><a href="beans.html#beans-dependency-resolution">依赖项解析过程</a></span></dt><dt><span class="section"><a href="beans.html#beans-some-examples">依赖注入的例子</a></span></dt></dl></dd><dt><span class="section"><a href="beans.html#beans-factory-properties-detailed">6.4.2. 依赖和配置的详细信息</a></span></dt><dd><dl><dt><span class="section"><a href="beans.html#beans-value-element">基本值(基本类型、字符串等等)</a></span></dt><dt><span class="section"><a href="beans.html#beans-ref-element">对其它Bean(协作者)的引用</a></span></dt><dt><span class="section"><a href="beans.html#beans-inner-beans">内部Bean</a></span></dt><dt><span class="section"><a href="beans.html#beans-collection-elements">集合</a></span></dt><dt><span class="section"><a href="beans.html#beans-null-element">Null 值和空字符串值</a></span></dt><dt><span class="section"><a href="beans.html#beans-p-namespace">使用p命名空间的XML快捷方式</a></span></dt><dt><span class="section"><a href="beans.html#beans-c-namespace">使用c命名空间的XML快捷方式</a></span></dt><dt><span class="section"><a href="beans.html#beans-compound-property-names">复合属性名称</a></span></dt></dl></dd><dt><span class="section"><a href="beans.html#beans-factory-dependson">6.4.3. 依赖的使用</a></span></dt><dt><span class="section"><a href="beans.html#beans-factory-lazy-init">6.4.4. 延迟初始化的Bean</a></span></dt><dt><span class="section"><a href="beans.html#beans-factory-autowire">6.4.5. 协作者的自动装配</a></span></dt><dd><dl><dt><span class="section"><a href="beans.html#beans-autowired-exceptions">自动装配的缺点和不足</a></span></dt><dt><span class="section"><a href="beans.html#beans-factory-autowire-candidate">将一个Bean从自动装配中排除</a></span></dt></dl></dd><dt><span class="section"><a href="beans.html#beans-factory-method-injection">6.4.6. 方法注入</a></span></dt><dd><dl><dt><span class="section"><a href="beans.html#beans-factory-lookup-method-injection">Lookup方法注入</a></span></dt><dt><span class="section"><a href="beans.html#beans-factory-arbitrary-method-replacement">任意方法更换</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="beans.html#beans-factory-scopes">6.5. Bean 作用域</a></span></dt><dd><dl><dt><span class="section"><a href="beans.html#beans-factory-scopes-singleton">6.5.1. 单例作用域</a></span></dt><dt><span class="section"><a href="beans.html#beans-factory-scopes-prototype">6.5.2. 原型作用域</a></span></dt><dt><span class="section"><a href="beans.html#beans-factory-scopes-sing-prot-interaction">6.5.3. 包含原型Bean依赖的单例Bean</a></span></dt><dt><span class="section"><a href="beans.html#beans-factory-scopes-other">6.5.4. 请求、 会话和全局会话作用域</a></span></dt><dd><dl><dt><span class="section"><a href="beans.html#beans-factory-scopes-other-web-configuration">Web配置初始化</a></span></dt><dt><span class="section"><a href="beans.html#beans-factory-scopes-request">请求作用域</a></span></dt><dt><span class="section"><a href="beans.html#beans-factory-scopes-session">会话作用域</a></span></dt><dt><span class="section"><a href="beans.html#beans-factory-scopes-global-session">全局会话作用域</a></span></dt><dt><span class="section"><a href="beans.html#beans-factory-scopes-application">Application 作用域</a></span></dt><dt><span class="section"><a href="beans.html#beans-factory-scopes-other-injection">作用域内的 bean 作为依赖项</a></span></dt></dl></dd><dt><span class="section"><a href="beans.html#beans-factory-scopes-custom">6.5.5. 自定义作用域</a></span></dt><dd><dl><dt><span class="section"><a href="beans.html#beans-factory-scopes-custom-creating">创建自定义的作用域</a></span></dt><dt><span class="section"><a href="beans.html#beans-factory-scopes-custom-using">使用自定义作用域</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="beans.html#beans-factory-nature">6.6. 自定义 bean 的性质</a></span></dt><dd><dl><dt><span class="section"><a href="beans.html#beans-factory-lifecycle">6.6.1. 生命周期回调</a></span></dt><dd><dl><dt><span class="section"><a href="beans.html#beans-factory-lifecycle-initializingbean">初始化回调</a></span></dt><dt><span class="section"><a href="beans.html#beans-factory-lifecycle-disposablebean">销毁回调</a></span></dt><dt><span class="section"><a href="beans.html#beans-factory-lifecycle-default-init-destroy-methods">默认初始化和销毁方法</a></span></dt><dt><span class="section"><a href="beans.html#beans-factory-lifecycle-combined-effects">组合生命周期机制</a></span></dt><dt><span class="section"><a href="beans.html#beans-factory-lifecycle-processor">启动和关闭回调</a></span></dt><dt><span class="section"><a href="beans.html#beans-factory-shutdown">在非Web应用中优雅地关闭Spring IoC容器</a></span></dt></dl></dd><dt><span class="section"><a href="beans.html#beans-factory-aware">6.6.2. ApplicationContextAware 和 BeanNameAware</a></span></dt><dt><span class="section"><a href="beans.html#aware-list">6.6.3. 其它Aware接口</a></span></dt></dl></dd><dt><span class="section"><a href="beans.html#beans-child-bean-definitions">6.7. Bean 定义继承</a></span></dt><dt><span class="section"><a href="beans.html#beans-factory-extension">6.8. 容器扩展点</a></span></dt><dd><dl><dt><span class="section"><a href="beans.html#beans-factory-extension-bpp">6.8.1. 使用 BeanPostProcessor 自定义 bean </a></span></dt><dd><dl><dt><span class="section"><a href="beans.html#beans-factory-extension-bpp-examples-hw">示例: BeanPostProcessor 风格的Hello World</a></span></dt><dt><span class="section"><a href="beans.html#beans-factory-extension-bpp-examples-rabpp">示例: RequiredAnnotationBeanPostProcessor</a></span></dt></dl></dd><dt><span class="section"><a href="beans.html#beans-factory-extension-factory-postprocessors">6.8.2. 使用BeanFactoryPostProcessor自定义配置元数据</a></span></dt><dd><dl><dt><span class="section"><a href="beans.html#beans-factory-placeholderconfigurer">示例: 类名替换PropertyPlaceholderConfigurer </a></span></dt><dt><span class="section"><a href="beans.html#beans-factory-overrideconfigurer">示例: PropertyOverrideConfigurer</a></span></dt></dl></dd><dt><span class="section"><a href="beans.html#beans-factory-extension-factorybean">6.8.3. 使用FactoryBean 自定义实例化逻辑</a></span></dt></dl></dd><dt><span class="section"><a href="beans.html#beans-annotation-config">6.9. 基于注解的容器配置</a></span></dt><dd><dl><dt><span class="section"><a href="beans.html#beans-required-annotation">6.9.1. @Required</a></span></dt><dt><span class="section"><a href="beans.html#beans-autowired-annotation">6.9.2. @Autowired</a></span></dt><dt><span class="section"><a href="beans.html#beans-autowired-annotation-primary">6.9.3. 使用@Primary微调基于注解的自动装配</a></span></dt><dt><span class="section"><a href="beans.html#beans-autowired-annotation-qualifiers">6.9.4. 使用限定符微调基于注解的自动装配</a></span></dt><dt><span class="section"><a href="beans.html#beans-generics-as-qualifiers">6.9.5. 使用泛型作为自动装配限定符</a></span></dt><dt><span class="section"><a href="beans.html#beans-custom-autowire-configurer">6.9.6. CustomAutowireConfigurer</a></span></dt><dt><span class="section"><a href="beans.html#beans-resource-annotation">6.9.7. @Resource</a></span></dt><dt><span class="section"><a href="beans.html#beans-postconstruct-and-predestroy-annotations">6.9.8. @PostConstruct 和 @PreDestroy</a></span></dt></dl></dd><dt><span class="section"><a href="beans.html#beans-classpath-scanning">6.10. 类路径扫描和托管的组件</a></span></dt><dd><dl><dt><span class="section"><a href="beans.html#beans-stereotype-annotations">6.10.1. @Component 和更原型注解</a></span></dt><dt><span class="section"><a href="beans.html#beans-meta-annotations">6.10.2. 元注解</a></span></dt><dt><span class="section"><a href="beans.html#beans-scanning-autodetection">6.10.3. 自动检测类和注册 bean 定义</a></span></dt><dt><span class="section"><a href="beans.html#beans-scanning-filters">6.10.4. 使用过滤器进行自定义扫描</a></span></dt><dt><span class="section"><a href="beans.html#beans-factorybeans-annotations">6.10.5. 在组件中定义Bean的元数据</a></span></dt><dt><span class="section"><a href="beans.html#beans-scanning-name-generator">6.10.6. 命名自动检测组件</a></span></dt><dt><span class="section"><a href="beans.html#beans-scanning-scope-resolver">6.10.7. 为自动检测组件提供一个作用域</a></span></dt><dt><span class="section"><a href="beans.html#beans-scanning-qualifiers">6.10.8. 使用注解提供限定符元数据</a></span></dt></dl></dd><dt><span class="section"><a href="beans.html#beans-standard-annotations">6.11. 使用 JSR 330 标准注解</a></span></dt><dd><dl><dt><span class="section"><a href="beans.html#beans-inject-named">6.11.1. 使用 @Inject 和 @Named进行依赖注入</a></span></dt><dt><span class="section"><a href="beans.html#beans-named">6.11.2. @Named: @Component注解的一个标准等价</a></span></dt><dt><span class="section"><a href="beans.html#beans-standard-annotations-limitations">6.11.3. 标准实现的局限性</a></span></dt></dl></dd><dt><span class="section"><a href="beans.html#beans-java">6.12. 基于 Java 的容器的配置</a></span></dt><dd><dl><dt><span class="section"><a href="beans.html#beans-java-basic-concepts">6.12.1. 基本概念: @Bean 和 @Configuration</a></span></dt><dt><span class="section"><a href="beans.html#beans-java-instantiating-container">6.12.2. 使用 AnnotationConfigApplicationContext 实例化 Spring 容器</a></span></dt><dd><dl><dt><span class="section"><a href="beans.html#beans-java-instantiating-container-contstructor">简单的构造器</a></span></dt><dt><span class="section"><a href="beans.html#beans-java-instantiating-container-register">使用register(Class<?>…)以编程方式构建容器</a></span></dt><dt><span class="section"><a href="beans.html#beans-java-instantiating-container-scan">使用scan(String…​)启用组件扫描</a></span></dt><dt><span class="section"><a href="beans.html#beans-java-instantiating-container-web">使用AnnotationConfigWebApplicationContext支持Web应用</a></span></dt></dl></dd><dt><span class="section"><a href="beans.html#beans-java-bean-annotation">6.12.3. 使用 @Bean 注解</a></span></dt><dd><dl><dt><span class="section"><a href="beans.html#beans-java-declaring-a-bean">声明一个 bean</a></span></dt><dt><span class="section"><a href="beans.html#beans-java-dependencies">Bean 的依赖关系</a></span></dt><dt><span class="section"><a href="beans.html#beans-java-lifecycle-callbacks">接收生命周期回调</a></span></dt><dt><span class="section"><a href="beans.html#beans-java-specifying-bean-scope">指定Bean的作用域</a></span></dt><dt><span class="section"><a href="beans.html#beans-java-customizing-bean-naming">自定义Bean的命名</a></span></dt><dt><span class="section"><a href="beans.html#beans-java-bean-aliasing">Bean别名</a></span></dt><dt><span class="section"><a href="beans.html#beans-java-bean-description">Bean 描述</a></span></dt></dl></dd><dt><span class="section"><a href="beans.html#beans-java-configuration-annotation">6.12.4. 使用 @Configuration 注解</a></span></dt><dd><dl><dt><span class="section"><a href="beans.html#beans-java-injecting-dependencies">注入内部Bean依赖</a></span></dt><dt><span class="section"><a href="beans.html#beans-java-method-injection">Lookup方法注入</a></span></dt><dt><span class="section"><a href="beans.html#beans-java-further-information-java-config">基于Java的配置内部是如何工作的更多信息</a></span></dt></dl></dd><dt><span class="section"><a href="beans.html#beans-java-composing-configuration-classes">6.12.5. 组合基于Java的配置</a></span></dt><dd><dl><dt><span class="section"><a href="beans.html#beans-java-using-import">使用 @Import 注解</a></span></dt><dt><span class="section"><a href="beans.html#beans-java-conditional">有条件地包含 @Configuration 类或 @Bean 方法</a></span></dt><dt><span class="section"><a href="beans.html#beans-java-combining">合并Java和XML配置</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="beans.html#beans-environment">6.13. 环境抽象</a></span></dt><dd><dl><dt><span class="section"><a href="beans.html#beans-definition-profiles">6.13.1. Bean 定义配置文件</a></span></dt><dd><dl><dt><span class="section"><a href="beans.html#beans-definition-profiles-java">@Profile</a></span></dt></dl></dd><dt><span class="section"><a href="beans.html#beans-definition-profiles-xml">6.13.2. XML bean 定义配置文件</a></span></dt><dd><dl><dt><span class="section"><a href="beans.html#beans-definition-profiles-enable">激活一个配置文件</a></span></dt><dt><span class="section"><a href="beans.html#beans-definition-profiles-default">默认配置文件</a></span></dt></dl></dd><dt><span class="section"><a href="beans.html#beans-property-source-abstraction">6.13.3. PropertySource 抽象</a></span></dt><dt><span class="section"><a href="beans.html#__propertysource">6.13.4. @PropertySource</a></span></dt><dt><span class="section"><a href="beans.html#_placeholder_resolution_in_statements">6.13.5. 语句中占位符方案</a></span></dt></dl></dd><dt><span class="section"><a href="beans.html#context-load-time-weaver">6.14. 注册 LoadTimeWeaver</a></span></dt><dt><span class="section"><a href="beans.html#context-introduction">6.15. ApplicationContext 的附加功能</a></span></dt><dd><dl><dt><span class="section"><a href="beans.html#context-functionality-messagesource">6.15.1. 使用 MessageSource 进行国际化</a></span></dt><dt><span class="section"><a href="beans.html#context-functionality-events">6.15.2. 标准和自定义事件</a></span></dt><dd><dl><dt><span class="section"><a href="beans.html#context-functionality-events-annotation">基于注解的事件侦听器</a></span></dt><dt><span class="section"><a href="beans.html#context-functionality-events-generics">泛型事件</a></span></dt></dl></dd><dt><span class="section"><a href="beans.html#context-functionality-resources">6.15.3. 方便地访问低级资源</a></span></dt><dt><span class="section"><a href="beans.html#context-create">6.15.4. Web应用便捷的ApplicationContext实例</a></span></dt><dt><span class="section"><a href="beans.html#context-deploy-rar">6.15.5. 将Spring ApplicationContext部署为一个Java EE RAR文件</a></span></dt></dl></dd><dt><span class="section"><a href="beans.html#beans-beanfactory">6.16. BeanFactory</a></span></dt><dd><dl><dt><span class="section"><a href="beans.html#context-introduction-ctx-vs-beanfactory">6.16.1. BeanFactory 还是 ApplicationContext?</a></span></dt><dt><span class="section"><a href="beans.html#beans-servicelocator">6.16.2. 胶水代码与讨厌的单例</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="resources.html">7. Resources</a></span></dt><dd><dl><dt><span class="section"><a href="resources.html#resources-introduction">7.1. 简介</a></span></dt><dt><span class="section"><a href="resources.html#resources-resource">7.2. Resource 接口</a></span></dt><dt><span class="section"><a href="resources.html#resources-implementations">7.3. 内置的Resource实现</a></span></dt><dd><dl><dt><span class="section"><a href="resources.html#resources-implementations-urlresource">7.3.1. UrlResource</a></span></dt><dt><span class="section"><a href="resources.html#resources-implementations-classpathresource">7.3.2. ClassPathResource</a></span></dt><dt><span class="section"><a href="resources.html#resources-implementations-filesystemresource">7.3.3. FileSystemResource</a></span></dt><dt><span class="section"><a href="resources.html#resources-implementations-servletcontextresource">7.3.4. ServletContextResource</a></span></dt><dt><span class="section"><a href="resources.html#resources-implementations-inputstreamresource">7.3.5. InputStreamResource</a></span></dt><dt><span class="section"><a href="resources.html#resources-implementations-bytearrayresource">7.3.6. ByteArrayResource</a></span></dt></dl></dd><dt><span class="section"><a href="resources.html#resources-resourceloader">7.4. ResourceLoader</a></span></dt><dt><span class="section"><a href="resources.html#resources-resourceloaderaware">7.5. ResourceLoaderAware 接口</a></span></dt><dt><span class="section"><a href="resources.html#resources-as-dependencies">7.6. Resources用作依赖项</a></span></dt><dt><span class="section"><a href="resources.html#resources-app-ctx">7.7. 应用程序上下文和资源路径</a></span></dt><dd><dl><dt><span class="section"><a href="resources.html#resources-app-ctx-construction">7.7.1. 构建应用程序上下文</a></span></dt><dd><dl><dt><span class="section"><a href="resources.html#resources-app-ctx-classpathxml">构建 ClassPathXmlApplicationContext 实例-快捷方式</a></span></dt></dl></dd><dt><span class="section"><a href="resources.html#resources-app-ctx-wildcards-in-resource-paths">7.7.2. 在应用程序上下文构造器资源路径中使用通配符</a></span></dt><dd><dl><dt><span class="section"><a href="resources.html#resources-app-ctx-ant-patterns-in-paths">Ant风格的模式</a></span></dt><dt><span class="section"><a href="resources.html#resources-classpath-wildcards">Classpath*: 可移植性 classpath*: 前缀</a></span></dt><dt><span class="section"><a href="resources.html#resources-wildcards-in-path-other-stuff">通配符的其它说明</a></span></dt></dl></dd><dt><span class="section"><a href="resources.html#resources-filesystemresource-caveats">7.7.3. FileSystemResource注意实现</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="validation.html">8. 验证、 数据绑定和类型转换</a></span></dt><dd><dl><dt><span class="section"><a href="validation.html#validation-introduction">8.1. 简介</a></span></dt><dt><span class="section"><a href="validation.html#validator">8.2. 使用Spring的Validator接口进行验证</a></span></dt><dt><span class="section"><a href="validation.html#validation-conversion">8.3. 解析错误消息代码</a></span></dt><dt><span class="section"><a href="validation.html#beans-beans">8.4. Bean 操作和 BeanWrapper</a></span></dt><dd><dl><dt><span class="section"><a href="validation.html#beans-beans-conventions">8.4.1. 设置和获取基本属性和嵌套属性</a></span></dt><dt><span class="section"><a href="validation.html#beans-beans-conversion">8.4.2. 内置的 PropertyEditor 实现</a></span></dt><dd><dl><dt><span class="section"><a href="validation.html#beans-beans-conversion-customeditor-registration">注册额外自定义的PropertyEditors</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="validation.html#core-convert">8.5. Spring类型转换</a></span></dt><dd><dl><dt><span class="section"><a href="validation.html#core-convert-Converter-API">8.5.1. Converter SPI</a></span></dt><dt><span class="section"><a href="validation.html#core-convert-ConverterFactory-SPI">8.5.2. ConverterFactory</a></span></dt><dt><span class="section"><a href="validation.html#core-convert-GenericConverter-SPI">8.5.3. GenericConverter</a></span></dt><dd><dl><dt><span class="section"><a href="validation.html#core-convert-ConditionalGenericConverter-SPI">ConditionalGenericConverter</a></span></dt></dl></dd><dt><span class="section"><a href="validation.html#core-convert-ConversionService-API">8.5.4. ConversionService API</a></span></dt><dt><span class="section"><a href="validation.html#core-convert-Spring-config">8.5.5. 配置 ConversionService</a></span></dt><dt><span class="section"><a href="validation.html#core-convert-programmatic-usage">8.5.6. 以编程方式使用 ConversionService</a></span></dt></dl></dd><dt><span class="section"><a href="validation.html#format">8.6. Spring字段格式化</a></span></dt><dd><dl><dt><span class="section"><a href="validation.html#format-Formatter-SPI">8.6.1. Formatter SPI</a></span></dt><dt><span class="section"><a href="validation.html#format-CustomFormatAnnotations">8.6.2. 注解驱动的格式化</a></span></dt><dd><dl><dt><span class="section"><a href="validation.html#format-annotations-api">格式注解 API</a></span></dt></dl></dd><dt><span class="section"><a href="validation.html#format-FormatterRegistry-SPI">8.6.3. FormatterRegistry SPI</a></span></dt><dt><span class="section"><a href="validation.html#format-FormatterRegistrar-SPI">8.6.4. FormatterRegistrar SPI</a></span></dt><dt><span class="section"><a href="validation.html#format-configuring-formatting-mvc">8.6.5. 在Spring MVC中配置格式化</a></span></dt></dl></dd><dt><span class="section"><a href="validation.html#format-configuring-formatting-globaldatetimeformat">8.7. 配置全球日期及时间格式</a></span></dt><dt><span class="section"><a href="validation.html#validation-beanvalidation">8.8. Spring Validation</a></span></dt><dd><dl><dt><span class="section"><a href="validation.html#validation-beanvalidation-overview">8.8.1. JSR 303 Bean 校验API 概述</a></span></dt><dt><span class="section"><a href="validation.html#validation-beanvalidation-spring">8.8.2. 配置 Bean 校验提供者</a></span></dt><dd><dl><dt><span class="section"><a href="validation.html#validation-beanvalidation-spring-inject">注入一个校验器</a></span></dt><dt><span class="section"><a href="validation.html#validation-beanvalidation-spring-constraints">配置自定义约束</a></span></dt><dt><span class="section"><a href="validation.html#validation-beanvalidation-spring-method">Spring驱动的方法校验</a></span></dt><dt><span class="section"><a href="validation.html#validation-beanvalidation-spring-other">额外的配置选项</a></span></dt></dl></dd><dt><span class="section"><a href="validation.html#validation-binder">8.8.3. 配置 DataBinder</a></span></dt><dt><span class="section"><a href="validation.html#validation-mvc">8.8.4. Spring MVC 3 校验</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="expressions.html">9. Spring表达式语言 (SpEL)</a></span></dt><dd><dl><dt><span class="section"><a href="expressions.html#expressions-intro">9.1. 简介</a></span></dt><dt><span class="section"><a href="expressions.html#expressions-features">9.2. 功能概述</a></span></dt><dt><span class="section"><a href="expressions.html#expressions-evaluation">9.3. 使用Spring的Expression接口进行表达式估值</a></span></dt><dd><dl><dt><span class="section"><a href="expressions.html#expressions-evaluation-context">9.3.1. EvaluationContext 接口</a></span></dt><dd><dl><dt><span class="section"><a href="expressions.html#expressions-type-conversion">类型转换</a></span></dt></dl></dd><dt><span class="section"><a href="expressions.html#expressions-parser-configuration">9.3.2. 解析器配置</a></span></dt><dt><span class="section"><a href="expressions.html#expressions-spel-compilation">9.3.3. SpEL编译</a></span></dt><dd><dl><dt><span class="section"><a href="expressions.html#expressions-compiler-configuration">Compiler configuration</a></span></dt><dt><span class="section"><a href="expressions.html#expressions-compiler-limitations">编译器限制</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="expressions.html#expressions-beandef">9.4. 用于定义 bean 定义的表达式支持</a></span></dt><dd><dl><dt><span class="section"><a href="expressions.html#expressions-beandef-xml-based">9.4.1. 基于 XML 的配置</a></span></dt><dt><span class="section"><a href="expressions.html#expressions-beandef-annotation-based">9.4.2. 基于注解的配置</a></span></dt></dl></dd><dt><span class="section"><a href="expressions.html#expressions-language-ref">9.5. 语言参考</a></span></dt><dd><dl><dt><span class="section"><a href="expressions.html#expressions-ref-literal">9.5.1. 文本表达式</a></span></dt><dt><span class="section"><a href="expressions.html#expressions-properties-arrays">9.5.2. 属性、 数组、 列表、 映射、 索引器</a></span></dt><dt><span class="section"><a href="expressions.html#expressions-inline-lists">9.5.3. 内联列表</a></span></dt><dt><span class="section"><a href="expressions.html#expressions-inline-maps">9.5.4. 内联映射</a></span></dt><dt><span class="section"><a href="expressions.html#expressions-array-construction">9.5.5. 数组结构</a></span></dt><dt><span class="section"><a href="expressions.html#expressions-methods">9.5.6. 方法</a></span></dt><dt><span class="section"><a href="expressions.html#expressions-operators">9.5.7. 运算符</a></span></dt><dd><dl><dt><span class="section"><a href="expressions.html#expressions-operators-relational">关系运算符</a></span></dt><dt><span class="section"><a href="expressions.html#expressions-operators-logical">逻辑运算符</a></span></dt><dt><span class="section"><a href="expressions.html#expressions-operators-mathematical">数学运算符</a></span></dt></dl></dd><dt><span class="section"><a href="expressions.html#expressions-assignment">9.5.8. 赋值</a></span></dt><dt><span class="section"><a href="expressions.html#expressions-types">9.5.9. 类型</a></span></dt><dt><span class="section"><a href="expressions.html#expressions-constructors">9.5.10. 构造函数</a></span></dt><dt><span class="section"><a href="expressions.html#expressions-ref-variables">9.5.11. 变量</a></span></dt><dd><dl><dt><span class="section"><a href="expressions.html#expressions-this-root">#this 和 #root 变量</a></span></dt></dl></dd><dt><span class="section"><a href="expressions.html#expressions-ref-functions">9.5.12. 函数</a></span></dt><dt><span class="section"><a href="expressions.html#expressions-bean-references">9.5.13. Bean 的引用</a></span></dt><dt><span class="section"><a href="expressions.html#expressions-operator-ternary">9.5.14. 三元运算符 (If-Then-Else)</a></span></dt><dt><span class="section"><a href="expressions.html#expressions-operator-elvis">9.5.15. Elvis操作符</a></span></dt><dt><span class="section"><a href="expressions.html#expressions-operator-safe-navigation">9.5.16. 安全导航操作</a></span></dt><dt><span class="section"><a href="expressions.html#expressions-collection-selection">9.5.17. 集合选择</a></span></dt><dt><span class="section"><a href="expressions.html#expressions-collection-projection">9.5.18. 集合投影</a></span></dt><dt><span class="section"><a href="expressions.html#expressions-templating">9.5.19. 表达式模板</a></span></dt></dl></dd><dt><span class="section"><a href="expressions.html#expressions-example-classes">9.6. 在示例中使用的类</a></span></dt></dl></dd><dt><span class="chapter"><a href="aop.html">10. 使用Spring进行面向切面编程</a></span></dt><dd><dl><dt><span class="section"><a href="aop.html#aop-introduction">10.1. 简介</a></span></dt><dd><dl><dt><span class="section"><a href="aop.html#aop-introduction-defn">10.1.1. AOP 概念</a></span></dt><dt><span class="section"><a href="aop.html#aop-introduction-spring-defn">10.1.2. Spring AOP 的功能和目标</a></span></dt><dt><span class="section"><a href="aop.html#aop-introduction-proxies">10.1.3. AOP 代理</a></span></dt></dl></dd><dt><span class="section"><a href="aop.html#aop-ataspectj">10.2. @AspectJ 支持</a></span></dt><dd><dl><dt><span class="section"><a href="aop.html#aop-aspectj-support">10.2.1. 启用 @AspectJ 支持</a></span></dt><dd><dl><dt><span class="section"><a href="aop.html#aop-enable-aspectj-java">使用Java 配置启用 @AspectJ 支持</a></span></dt><dt><span class="section"><a href="aop.html#aop-enable-aspectj-xml">使用 XML 配置启用 @AspectJ 支持</a></span></dt></dl></dd><dt><span class="section"><a href="aop.html#aop-at-aspectj">10.2.2. 声明一个切面</a></span></dt><dt><span class="section"><a href="aop.html#aop-pointcuts">10.2.3. 声明一个切入点</a></span></dt><dd><dl><dt><span class="section"><a href="aop.html#aop-pointcuts-designators">受支持的切入点标识符</a></span></dt><dt><span class="section"><a href="aop.html#aop-pointcuts-combining">组合切入点表达式</a></span></dt><dt><span class="section"><a href="aop.html#aop-common-pointcuts">共享通用的切入点定义</a></span></dt><dt><span class="section"><a href="aop.html#aop-pointcuts-examples">例子</a></span></dt><dt><span class="section"><a href="aop.html#writing-good-pointcuts">编写良好的切入点</a></span></dt></dl></dd><dt><span class="section"><a href="aop.html#aop-advice">10.2.4. 声明通知</a></span></dt><dd><dl><dt><span class="section"><a href="aop.html#aop-advice-before">前置通知</a></span></dt><dt><span class="section"><a href="aop.html#aop-advice-after-returning">正常返回通知</a></span></dt><dt><span class="section"><a href="aop.html#aop-advice-after-throwing">异常通知</a></span></dt><dt><span class="section"><a href="aop.html#aop-advice-after-finally">后置(finally)通知</a></span></dt><dt><span class="section"><a href="aop.html#aop-ataspectj-around-advice">环绕通知</a></span></dt><dt><span class="section"><a href="aop.html#aop-ataspectj-advice-params">通知参数</a></span></dt><dt><span class="section"><a href="aop.html#aop-ataspectj-advice-ordering">通知的顺序</a></span></dt></dl></dd><dt><span class="section"><a href="aop.html#aop-introductions">10.2.5. 简介</a></span></dt><dt><span class="section"><a href="aop.html#aop-instantiation-models">10.2.6. 切面实例方法Aspect instantiation models</a></span></dt><dt><span class="section"><a href="aop.html#aop-ataspectj-example">10.2.7. 示例</a></span></dt></dl></dd><dt><span class="section"><a href="aop.html#aop-schema">10.3. 基于schema的AOP支持</a></span></dt><dd><dl><dt><span class="section"><a href="aop.html#aop-schema-declaring-an-aspect">10.3.1. 声明一个切面</a></span></dt><dt><span class="section"><a href="aop.html#aop-schema-pointcuts">10.3.2. 声明一个切入点</a></span></dt><dt><span class="section"><a href="aop.html#aop-schema-advice">10.3.3. 声明通知</a></span></dt><dd><dl><dt><span class="section"><a href="aop.html#aop-schema-advice-before">前置通知</a></span></dt><dt><span class="section"><a href="aop.html#aop-schema-advice-after-returning">正常返回通知</a></span></dt><dt><span class="section"><a href="aop.html#aop-schema-advice-after-throwing">异常通知</a></span></dt><dt><span class="section"><a href="aop.html#aop-schema-advice-after-finally">后置(finally)通知</a></span></dt><dt><span class="section"><a href="aop.html#aop-schema-advice-around">环绕通知</a></span></dt><dt><span class="section"><a href="aop.html#aop-schema-params">通知参数</a></span></dt><dt><span class="section"><a href="aop.html#aop-ordering">通知的顺序</a></span></dt></dl></dd><dt><span class="section"><a href="aop.html#aop-schema-introductions">10.3.4. 简介</a></span></dt><dt><span class="section"><a href="aop.html#aop-schema-instatiation-models">10.3.5. 切面实例方法Aspect instantiation models</a></span></dt><dt><span class="section"><a href="aop.html#aop-schema-advisors">10.3.6. 通知器</a></span></dt><dt><span class="section"><a href="aop.html#aop-schema-example">10.3.7. 示例</a></span></dt></dl></dd><dt><span class="section"><a href="aop.html#aop-choosing">10.4. 选择要使用哪种AOP声明风格</a></span></dt><dd><dl><dt><span class="section"><a href="aop.html#aop-spring-or-aspectj">10.4.1. Spring AOP 还是全部AspectJ?</a></span></dt><dt><span class="section"><a href="aop.html#aop-ataspectj-or-xml">10.4.2. 对于Spring AOP，选择@AspectJ还是 XML?</a></span></dt></dl></dd><dt><span class="section"><a href="aop.html#aop-mixing-styles">10.5. 混合切面类型</a></span></dt><dt><span class="section"><a href="aop.html#aop-proxying">10.6. 代理机制</a></span></dt><dd><dl><dt><span class="section"><a href="aop.html#aop-understanding-aop-proxies">10.6.1. 理解 AOP 代理</a></span></dt></dl></dd><dt><span class="section"><a href="aop.html#aop-aspectj-programmatic">10.7. 以编程方式创建@AspectJ代理</a></span></dt><dt><span class="section"><a href="aop.html#aop-using-aspectj">10.8. Spring应用中使用AspectJ</a></span></dt><dd><dl><dt><span class="section"><a href="aop.html#aop-atconfigurable
">10.8.1. Spring中使用AspectJ来依赖注入域对象</a></span></dt><dd><dl><dt><span class="section"><a href="aop.html#aop-configurable-testing">单元测试 @Configurable 对象</a></span></dt><dt><span class="section"><a href="aop.html#aop-configurable-container">使用多个应用程序上下文</a></span></dt></dl></dd><dt><span class="section"><a href="aop.html#aop-ajlib-other">10.8.2. AspectJ 的其他Spring切面</a></span></dt><dt><span class="section"><a href="aop.html#aop-aj-configure">10.8.3. 使用Spring IoC配置AspectJ切面</a></span></dt><dt><span class="section"><a href="aop.html#aop-aj-ltw">10.8.4. Spring 框架中使用AspectJ在加载时间织入</a></span></dt><dd><dl><dt><span class="section"><a href="aop.html#aop-aj-ltw-first-example">第一个示例</a></span></dt><dt><span class="section"><a href="aop.html#aop-aj-ltw-the-aspects">Aspects</a></span></dt><dt><span class="section"><a href="aop.html#aop-aj-ltw-aop_dot_xml">'META-INF/aop.xml'</a></span></dt><dt><span class="section"><a href="aop.html#aop-aj-ltw-libraries">所需的库 (JARS)</a></span></dt><dt><span class="section"><a href="aop.html#aop-aj-ltw-spring">Spring 配置</a></span></dt><dt><span class="section"><a href="aop.html#aop-aj-ltw-environments">特定于环境的配置</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="aop.html#aop-resources">10.9. 更多资源</a></span></dt></dl></dd><dt><span class="chapter"><a href="aop-api.html">11. Spring AOP APIs</a></span></dt><dd><dl><dt><span class="section"><a href="aop-api.html#aop-api-introduction">11.1. 简介</a></span></dt><dt><span class="section"><a href="aop-api.html#aop-api-pointcuts">11.2. Spring中的切入点API</a></span></dt><dd><dl><dt><span class="section"><a href="aop-api.html#aop-api-concepts">11.2.1. 概念</a></span></dt><dt><span class="section"><a href="aop-api.html#aop-api-pointcut-ops">11.2.2. 切入点上的操作</a></span></dt><dt><span class="section"><a href="aop-api.html#aop-api-pointcuts-aspectj">11.2.3. AspectJ 表达切入点</a></span></dt><dt><span class="section"><a href="aop-api.html#aop-api-pointcuts-impls">11.2.4. 便捷的切入点实现</a></span></dt><dd><dl><dt><span class="section"><a href="aop-api.html#aop-api-pointcuts-static">静态切入点</a></span></dt><dt><span class="section"><a href="aop-api.html#aop-api-pointcuts-dynamic">动态切入点</a></span></dt></dl></dd><dt><span class="section"><a href="aop-api.html#aop-api-pointcuts-superclasses">11.2.5. 切入点超类</a></span></dt><dt><span class="section"><a href="aop-api.html#aop-api-pointcuts-custom">11.2.6. 自定义的切入点</a></span></dt></dl></dd><dt><span class="section"><a href="aop-api.html#aop-api-advice">11.3. Spring中的通知API</a></span></dt><dd><dl><dt><span class="section"><a href="aop-api.html#aop-api-advice-lifecycle">11.3.1. 通知的生命周期</a></span></dt><dt><span class="section"><a href="aop-api.html#aop-api-advice-types">11.3.2. Spring中的通知类型</a></span></dt><dd><dl><dt><span class="section"><a href="aop-api.html#aop-api-advice-around">拦截环绕通知</a></span></dt><dt><span class="section"><a href="aop-api.html#aop-api-advice-before">前置通知</a></span></dt><dt><span class="section"><a href="aop-api.html#aop-api-advice-throws">异常通知</a></span></dt><dt><span class="section"><a href="aop-api.html#aop-api-advice-after-returning">正常返回通知</a></span></dt><dt><span class="section"><a href="aop-api.html#aop-api-advice-introduction">引入通知[Introduction advice]</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="aop-api.html#aop-api-advisor">11.4. Spring的通知器API</a></span></dt><dt><span class="section"><a href="aop-api.html#aop-pfb">11.5. 使用 ProxyFactoryBean 创建 AOP 代理</a></span></dt><dd><dl><dt><span class="section"><a href="aop-api.html#aop-pfb-1">11.5.1. 基础知识</a></span></dt><dt><span class="section"><a href="aop-api.html#aop-pfb-2">11.5.2. JavaBean 属性</a></span></dt><dt><span class="section"><a href="aop-api.html#aop-pfb-proxy-types">11.5.3. 基于JDK和CGLIB的代理</a></span></dt><dt><span class="section"><a href="aop-api.html#aop-api-proxying-intf">11.5.4. 代理接口</a></span></dt><dt><span class="section"><a href="aop-api.html#aop-api-proxying-class">11.5.5. 代理类</a></span></dt><dt><span class="section"><a href="aop-api.html#aop-global-advisors">11.5.6. 使用'全局'通知器</a></span></dt></dl></dd><dt><span class="section"><a href="aop-api.html#aop-concise-proxy">11.6. 简洁的代理定义</a></span></dt><dt><span class="section"><a href="aop-api.html#aop-prog">11.7. 使用ProxyFactory 以编程方式创建 AOP 代理</a></span></dt><dt><span class="section"><a href="aop-api.html#aop-api-advised">11.8. 操作通知对象</a></span></dt><dt><span class="section"><a href="aop-api.html#aop-autoproxy">11.9. 使用"自动代理"设施</a></span></dt><dd><dl><dt><span class="section"><a href="aop-api.html#aop-autoproxy-choices">11.9.1. Autoproxy bean定义</a></span></dt><dd><dl><dt><span class="section"><a href="aop-api.html#aop-api-autoproxy">BeanNameAutoProxyCreator</a></span></dt><dt><span class="section"><a href="aop-api.html#aop-api-autoproxy-default">DefaultAdvisorAutoProxyCreator</a></span></dt><dt><span class="section"><a href="aop-api.html#aop-api-autoproxy-abstract">AbstractAdvisorAutoProxyCreator</a></span></dt></dl></dd><dt><span class="section"><a href="aop-api.html#aop-autoproxy-metadata">11.9.2. 使用元数据驱动的自动代理</a></span></dt></dl></dd><dt><span class="section"><a href="aop-api.html#aop-targetsource">11.10. 使用 TargetSources</a></span></dt><dd><dl><dt><span class="section"><a href="aop-api.html#aop-ts-swap">11.10.1. 热插拔目标源</a></span></dt><dt><span class="section"><a href="aop-api.html#aop-ts-pool">11.10.2. 池化目标源</a></span></dt><dt><span class="section"><a href="aop-api.html#aop-ts-prototype">11.10.3. 原型化目标源</a></span></dt><dt><span class="section"><a href="aop-api.html#aop-ts-threadlocal">11.10.4. ThreadLocal目标源</a></span></dt></dl></dd><dt><span class="section"><a href="aop-api.html#aop-extensibility">11.11. 定义新的通知类型</a></span></dt><dt><span class="section"><a href="aop-api.html#aop-api-resources">11.12. 更多资源</a></span></dt></dl></dd></dl></dd><dt><span class="part"><a href="testing.html">IV. 测试</a></span></dt><dd><dl><dt><span class="chapter"><a href="testing-introduction.html">12. Spring测试简介</a></span></dt><dt><span class="chapter"><a href="unit-testing.html">13. 单元测试</a></span></dt><dd><dl><dt><span class="section"><a href="unit-testing.html#mock-objects">13.1. Mock 对象</a></span></dt><dd><dl><dt><span class="section"><a href="unit-testing.html#mock-objects-env">13.1.1. 环境</a></span></dt><dt><span class="section"><a href="unit-testing.html#mock-objects-jndi">13.1.2. JNDI</a></span></dt><dt><span class="section"><a href="unit-testing.html#mock-objects-servlet">13.1.3. Servlet API</a></span></dt><dt><span class="section"><a href="unit-testing.html#mock-objects-portlet">13.1.4. Portlet API</a></span></dt></dl></dd><dt><span class="section"><a href="unit-testing.html#unit-testing-support-classes">13.2. 单元测试支持类</a></span></dt><dd><dl><dt><span class="section"><a href="unit-testing.html#unit-testing-utilities">13.2.1. 通用测试实用工具类</a></span></dt><dt><span class="section"><a href="unit-testing.html#unit-testing-spring-mvc">13.2.2. Spring MVC</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="integration-testing.html">14. 集成测试</a></span></dt><dd><dl><dt><span class="section"><a href="integration-testing.html#integration-testing-overview">14.1. 概述</a></span></dt><dt><span class="section"><a href="integration-testing.html#integration-testing-goals">14.2. 集成测试的目标</a></span></dt><dd><dl><dt><span class="section"><a href="integration-testing.html#testing-ctx-management">14.2.1. 上下文管理和缓存</a></span></dt><dt><span class="section"><a href="integration-testing.html#testing-fixture-di">14.2.2. 测试装置的依赖注入</a></span></dt><dt><span class="section"><a href="integration-testing.html#testing-tx">14.2.3. 事务管理</a></span></dt><dt><span class="section"><a href="integration-testing.html#testing-support-classes">14.2.4. 集成测试的支持类</a></span></dt></dl></dd><dt><span class="section"><a href="integration-testing.html#integration-testing-support-jdbc">14.3. JDBC 支持测试</a></span></dt><dt><span class="section"><a href="integration-testing.html#integration-testing-annotations">14.4. 注解</a></span></dt><dd><dl><dt><span class="section"><a href="integration-testing.html#integration-testing-annotations-spring">14.4.1. Spring测试注解</a></span></dt><dt><span class="section"><a href="integration-testing.html#integration-testing-annotations-standard">14.4.2. 标准的注解支持</a></span></dt><dt><span class="section"><a href="integration-testing.html#integration-testing-annotations-junit">14.4.3. Spring JUnit测试注解</a></span></dt><dt><span class="section"><a href="integration-testing.html#integration-testing-annotations-meta">14.4.4. 支持测试的元注解</a></span></dt></dl></dd><dt><span class="section"><a href="integration-testing.html#testcontext-framework">14.5. Spring TestContext 框架</a></span></dt><dd><dl><dt><span class="section"><a href="integration-testing.html#testcontext-key-abstractions">14.5.1. 关键的抽象</a></span></dt><dt><span class="section"><a href="integration-testing.html#testcontext-tel-config">14.5.2. TestExecutionListener 配置</a></span></dt><dd><dl><dt><span class="section"><a href="integration-testing.html#testcontext-tel-config-registering-tels">注册自定义的TestExecutionListeners</a></span></dt><dt><span class="section"><a href="integration-testing.html#testcontext-tel-config-automatic-discovery">自动发现默认的TestExecutionListeners</a></span></dt><dt><span class="section"><a href="integration-testing.html#testcontext-tel-config-ordering">TestExecutionListeners排序</a></span></dt><dt><span class="section"><a href="integration-testing.html#testcontext-tel-config-merging">合并 TestExecutionListeners</a></span></dt></dl></dd><dt><span class="section"><a href="integration-testing.html#testcontext-ctx-management">14.5.3. 上下文管理</a></span></dt><dd><dl><dt><span class="section"><a href="integration-testing.html#testcontext-ctx-management-xml">使用XML资源的上下文配置</a></span></dt><dt><span class="section"><a href="integration-testing.html#testcontext-ctx-management-groovy">使用 Groovy 脚本的上下文配置</a></span></dt><dt><span class="section"><a href="integration-testing.html#testcontext-ctx-management-javaconfig">使用注解类的上下文配置</a></span></dt><dt><span class="section"><a href="integration-testing.html#testcontext-ctx-management-mixed-config">混合 XML，Groovy 脚本和注解类</a></span></dt><dt><span class="section"><a href="integration-testing.html#testcontext-ctx-management-initializers">使用上下文初始化器的上下文配置</a></span></dt><dt><span class="section"><a href="integration-testing.html#testcontext-ctx-management-inheritance">上下文配置继承</a></span></dt><dt><span class="section"><a href="integration-testing.html#testcontext-ctx-management-env-profiles">使用环境配置文件的上下文管理</a></span></dt><dt><span class="section"><a href="integration-testing.html#testcontext-ctx-management-property-sources">使用测试属性资源的上下文管理</a></span></dt><dt><span class="section"><a href="integration-testing.html#testcontext-ctx-management-web">加载 WebApplicationContext</a></span></dt><dt><span class="section"><a href="integration-testing.html#testcontext-ctx-management-caching">上下文缓存</a></span></dt><dt><span class="section"><a href="integration-testing.html#testcontext-ctx-management-ctx-hierarchies">上下文层次结构</a></span></dt></dl></dd><dt><span class="section"><a href="integration-testing.html#testcontext-fixture-di">14.5.4. 测试装置的依赖注入</a></span></dt><dt><span class="section"><a href="integration-testing.html#testcontext-web-scoped-beans">14.5.5. 测试请求域和会话域的Bean</a></span></dt><dt><span class="section"><a href="integration-testing.html#testcontext-tx">14.5.6. 事务管理</a></span></dt><dd><dl><dt><span class="section"><a href="integration-testing.html#testcontext-tx-test-managed-transactions">测试管理的事务</a></span></dt><dt><span class="section"><a href="integration-testing.html#testcontext-tx-enabling-transactions">启用和禁用事务</a></span></dt><dt><span class="section"><a href="integration-testing.html#testcontext-tx-rollback-and-commit-behavior">事务回滚和提交行为</a></span></dt><dt><span class="section"><a href="integration-testing.html#testcontext-tx-programmatic-tx-mgt">编程式事务管理</a></span></dt><dt><span class="section"><a href="integration-testing.html#testcontext-tx-before-and-after-tx">在事务外执行代码</a></span></dt><dt><span class="section"><a href="integration-testing.html#testcontext-tx-mgr-config">配置事务管理器</a></span></dt><dt><span class="section"><a href="integration-testing.html#testcontext-tx-annotation-demo">所有事务相关注解的演示</a></span></dt></dl></dd><dt><span class="section"><a href="integration-testing.html#testcontext-executing-sql">14.5.7. 执行SQL 脚本</a></span></dt><dd><dl><dt><span class="section"><a href="integration-testing.html#testcontext-executing-sql-programmatically">以编程方式执行 SQL 脚本</a></span></dt><dt><span class="section"><a href="integration-testing.html#testcontext-executing-sql-declaratively">使用<code class="literal">@Sql</code>以声明方式执行 SQL 脚本</a></span></dt></dl></dd><dt><span class="section"><a href="integration-testing.html#testcontext-support-classes">14.5.8. TestContext 框架支持类</a></span></dt><dd><dl><dt><span class="section"><a href="integration-testing.html#testcontext-junit4-runner">Spring JUnit Runner</a></span></dt><dt><span class="section"><a href="integration-testing.html#testcontext-junit4-rules">Spring JUnit 规则</a></span></dt><dt><span class="section"><a href="integration-testing.html#testcontext-support-classes-junit4">JUnit 支持类</a></span></dt><dt><span class="section"><a href="integration-testing.html#testcontext-support-classes-testng">TestNG 支持类</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="integration-testing.html#spring-mvc-test-framework">14.6. Spring MVC 测试框架</a></span></dt><dd><dl><dt><span class="section"><a href="integration-testing.html#spring-mvc-test-server">14.6.1. 服务器端测试</a></span></dt><dd><dl><dt><span class="section"><a href="integration-testing.html#spring-mvc-test-server-static-imports">静态导入</a></span></dt><dt><span class="section"><a href="integration-testing.html#spring-mvc-test-server-setup-options">设置选项</a></span></dt><dt><span class="section"><a href="integration-testing.html#spring-mvc-test-server-performing-requests">执行请求</a></span></dt><dt><span class="section"><a href="integration-testing.html#spring-mvc-test-server-defining-expectations">Defining Expectations</a></span></dt><dt><span class="section"><a href="integration-testing.html#spring-mvc-test-server-filters">过滤器注册</a></span></dt><dt><span class="section"><a href="integration-testing.html#spring-mvc-test-vs-end-to-end-integration-tests">容器外和端到端的集成测试之间的差异</a></span></dt><dt><span class="section"><a href="integration-testing.html#spring-mvc-test-server-resources">更多服务器端测试的例子</a></span></dt></dl></dd><dt><span class="section"><a href="integration-testing.html#spring-mvc-test-server-htmlunit">14.6.2. HtmlUnit 集成</a></span></dt><dd><dl><dt><span class="section"><a href="integration-testing.html#spring-mvc-test-server-htmlunit-why">为什么选择HtmlUnit 集成?</a></span></dt><dt><span class="section"><a href="integration-testing.html#spring-mvc-test-server-htmlunit-mah">MockMvc 和 HtmlUnit</a></span></dt><dt><span class="section"><a href="integration-testing.html#spring-mvc-test-server-htmlunit-webdriver">MockMvc 和 WebDriver</a></span></dt><dt><span class="section"><a href="integration-testing.html#spring-mvc-test-server-htmlunit-geb">MockMvc 和 Geb</a></span></dt></dl></dd><dt><span class="section"><a href="integration-testing.html#spring-mvc-test-client">14.6.3. 客户端的REST测试</a></span></dt><dd><dl><dt><span class="section"><a href="integration-testing.html#spring-mvc-test-client-static-imports">静态导入</a></span></dt><dt><span class="section"><a href="integration-testing.html#spring-mvc-test-client-resources">更多客户端REST测试的例子</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="integration-testing.html#testing-examples-petclinic">14.7. PetClinic 示例</a></span></dt></dl></dd><dt><span class="chapter"><a href="testing-resources.html">15. 更多资源</a></span></dt></dl></dd><dt><span class="part"><a href="spring-data-tier.html">V. 数据访问</a></span></dt><dd><dl><dt><span class="chapter"><a href="transaction.html">16. 事务管理</a></span></dt><dd><dl><dt><span class="section"><a href="transaction.html#transaction-intro">16.1. Spring 框架事务管理简介</a></span></dt><dt><span class="section"><a href="transaction.html#transaction-motivation">16.2. Spring 框架事务支持模型的优点</a></span></dt><dd><dl><dt><span class="section"><a href="transaction.html#transaction-global">16.2.1. 全局事务</a></span></dt><dt><span class="section"><a href="transaction.html#transaction-local">16.2.2. 本地事务</a></span></dt><dt><span class="section"><a href="transaction.html#transaction-programming-model">16.2.3. Spring框架的一致性编程模型</a></span></dt></dl></dd><dt><span class="section"><a href="transaction.html#transaction-strategies">16.3. 理解 Spring 框架事务抽象</a></span></dt><dt><span class="section"><a href="transaction.html#tx-resource-synchronization">16.4. 同步资源与事务</a></span></dt><dd><dl><dt><span class="section"><a href="transaction.html#tx-resource-synchronization-high">16.4.1. 高级同步实现</a></span></dt><dt><span class="section"><a href="transaction.html#tx-resource-synchronization-low">16.4.2. 低级同步实现</a></span></dt><dt><span class="section"><a href="transaction.html#tx-resource-synchronization-tadsp">16.4.3. TransactionAwareDataSourceProxy</a></span></dt></dl></dd><dt><span class="section"><a href="transaction.html#transaction-declarative">16.5. 声明式事务管理</a></span></dt><dd><dl><dt><span class="section"><a href="transaction.html#tx-decl-explained">16.5.1. 理解Spring框架的声明式事务管理实现</a></span></dt><dt><span class="section"><a href="transaction.html#transaction-declarative-first-example">16.5.2. 声明式事务实现的例子</a></span></dt><dt><span class="section"><a href="transaction.html#transaction-declarative-rolling-back">16.5.3. 回滚声明式事务</a></span></dt><dt><span class="section"><a href="transaction.html#transaction-declarative-diff-tx">16.5.4. 为不同的Bean配置不同的事务语义</a></span></dt><dt><span class="section"><a href="transaction.html#transaction-declarative-txadvice-settings">16.5.5. &lt;tx:advice/&gt; 设置</a></span></dt><dt><span class="section"><a href="transaction.html#transaction-declarative-annotations">16.5.6. 使用 @Transactional</a></span></dt><dd><dl><dt><span class="section"><a href="transaction.html#transaction-declarative-attransactional-settings">@Transactional 设置</a></span></dt><dt><span class="section"><a href="transaction.html#tx-multiple-tx-mgrs-with-attransactional">多个事务管理器与 @Transactional</a></span></dt><dt><span class="section"><a href="transaction.html#tx-custom-attributes">自定义快捷方式注解</a></span></dt></dl></dd><dt><span class="section"><a href="transaction.html#tx-propagation">16.5.7. 事务传播</a></span></dt><dd><dl><dt><span class="section"><a href="transaction.html#tx-propagation-required">Required</a></span></dt><dt><span class="section"><a href="transaction.html#tx-propagation-requires_new">RequiresNew</a></span></dt><dt><span class="section"><a href="transaction.html#tx-propagation-nested">Nested</a></span></dt></dl></dd><dt><span class="section"><a href="transaction.html#transaction-declarative-applying-more-than-just-tx-advice">16.5.8. 通知事务性操作</a></span></dt><dt><span class="section"><a href="transaction.html#transaction-declarative-aspectj">16.5.9. AspectJ中使用@Transactional</a></span></dt></dl></dd><dt><span class="section"><a href="transaction.html#transaction-programmatic">16.6. 编程式事务管理</a></span></dt><dd><dl><dt><span class="section"><a href="transaction.html#tx-prog-template">16.6.1. 使用 TransactionTemplate</a></span></dt><dd><dl><dt><span class="section"><a href="transaction.html#tx-prog-template-settings">指定事务设置</a></span></dt></dl></dd><dt><span class="section"><a href="transaction.html#transaction-programmatic-ptm">16.6.2. 使用 PlatformTransactionManager</a></span></dt></dl></dd><dt><span class="section"><a href="transaction.html#tx-decl-vs-prog">16.7. 编程式和声明式事务管理之间进行选择</a></span></dt><dt><span class="section"><a href="transaction.html#transaction-event">16.8. 事务绑定事件</a></span></dt><dt><span class="section"><a href="transaction.html#transaction-application-server-integration">16.9. 应用服务器特定的集成</a></span></dt><dd><dl><dt><span class="section"><a href="transaction.html#transaction-application-server-integration-websphere">16.9.1. IBM WebSphere</a></span></dt><dt><span class="section"><a href="transaction.html#transaction-application-server-integration-weblogic">16.9.2. Oracle WebLogic Server</a></span></dt></dl></dd><dt><span class="section"><a href="transaction.html#transaction-solutions-to-common-problems">16.10. 常见问题解决方案</a></span></dt><dd><dl><dt><span class="section"><a href="transaction.html#transaction-solutions-to-common-problems-wrong-ptm">16.10.1. 特定DataSource错误事务管理器的使用</a></span></dt></dl></dd><dt><span class="section"><a href="transaction.html#transaction-resources">16.11. 更多资源</a></span></dt></dl></dd><dt><span class="chapter"><a href="dao.html">17. DAO支持</a></span></dt><dd><dl><dt><span class="section"><a href="dao.html#dao-introduction">17.1. 简介</a></span></dt><dt><span class="section"><a href="dao.html#dao-exceptions">17.2. 一致的异常层次结构</a></span></dt><dt><span class="section"><a href="dao.html#dao-annotations">17.3. 用于配置DAO或Repository类的注解</a></span></dt></dl></dd><dt><span class="chapter"><a href="jdbc.html">18. 使用 JDBC 进行数据访问</a></span></dt><dd><dl><dt><span class="section"><a href="jdbc.html#jdbc-introduction">18.1. Spring框架JDBC简介</a></span></dt><dd><dl><dt><span class="section"><a href="jdbc.html#jdbc-choose-style">18.1.1. 选择一种JDBC数据访问实现</a></span></dt><dt><span class="section"><a href="jdbc.html#jdbc-packages">18.1.2. 包的层次结构</a></span></dt></dl></dd><dt><span class="section"><a href="jdbc.html#jdbc-core">18.2. 使用 JDBC 核心类控制基本JDBC处理和错误处理</a></span></dt><dd><dl><dt><span class="section"><a href="jdbc.html#jdbc-JdbcTemplate">18.2.1. JdbcTemplate</a></span></dt><dd><dl><dt><span class="section"><a href="jdbc.html#jdbc-JdbcTemplate-examples">JdbcTemplate 类的用法示例</a></span></dt><dt><span class="section"><a href="jdbc.html#jdbc-JdbcTemplate-idioms">JdbcTemplate 最佳实践</a></span></dt></dl></dd><dt><span class="section"><a href="jdbc.html#jdbc-NamedParameterJdbcTemplate">18.2.2. NamedParameterJdbcTemplate</a></span></dt><dt><span class="section"><a href="jdbc.html#jdbc-SQLExceptionTranslator">18.2.3. SQLExceptionTranslator</a></span></dt><dt><span class="section"><a href="jdbc.html#jdbc-statements-executing">18.2.4. 执行语句</a></span></dt><dt><span class="section"><a href="jdbc.html#jdbc-statements-querying">18.2.5. 运行查询</a></span></dt><dt><span class="section"><a href="jdbc.html#jdbc-updates">18.2.6. 更新数据库</a></span></dt><dt><span class="section"><a href="jdbc.html#jdbc-auto-genereted-keys">18.2.7. 获取自动生成的主键</a></span></dt></dl></dd><dt><span class="section"><a href="jdbc.html#jdbc-connections">18.3. 控制数据库连接</a></span></dt><dd><dl><dt><span class="section"><a href="jdbc.html#jdbc-datasource">18.3.1. DataSource</a></span></dt><dt><span class="section"><a href="jdbc.html#jdbc-DataSourceUtils">18.3.2. DataSourceUtils</a></span></dt><dt><span class="section"><a href="jdbc.html#jdbc-SmartDataSource">18.3.3. SmartDataSource</a></span></dt><dt><span class="section"><a href="jdbc.html#jdbc-AbstractDataSource">18.3.4. AbstractDataSource</a></span></dt><dt><span class="section"><a href="jdbc.html#jdbc-SingleConnectionDataSource">18.3.5. SingleConnectionDataSource</a></span></dt><dt><span class="section"><a href="jdbc.html#jdbc-DriverManagerDataSource">18.3.6. DriverManagerDataSource</a></span></dt><dt><span class="section"><a href="jdbc.html#jdbc-TransactionAwareDataSourceProxy">18.3.7. TransactionAwareDataSourceProxy</a></span></dt><dt><span class="section"><a href="jdbc.html#jdbc-DataSourceTransactionManager">18.3.8. DataSourceTransactionManager</a></span></dt><dt><span class="section"><a href="jdbc.html#jdbc-NativeJdbcExtractor">18.3.9. NativeJdbcExtractor</a></span></dt></dl></dd><dt><span class="section"><a href="jdbc.html#jdbc-advanced-jdbc">18.4. JDBC 批处理操作</a></span></dt><dd><dl><dt><span class="section"><a href="jdbc.html#jdbc-batch-classic">18.4.1. 使用JdbcTemplate进行基本的批量操作</a></span></dt><dt><span class="section"><a href="jdbc.html#jdbc-batch-list">18.4.2. 使用对象列表进行批量操作</a></span></dt><dt><span class="section"><a href="jdbc.html#jdbc-batch-multi">18.4.3. 批量操作与多个批量</a></span></dt></dl></dd><dt><span class="section"><a href="jdbc.html#jdbc-simple-jdbc">18.5. 使用SimpleJdbc类简化JDBC操作</a></span></dt><dd><dl><dt><span class="section"><a href="jdbc.html#jdbc-simple-jdbc-insert-1">18.5.1. 使用 SimpleJdbcInsert插入数据</a></span></dt><dt><span class="section"><a href="jdbc.html#jdbc-simple-jdbc-insert-2">18.5.2. 使用 SimpleJdbcInsert获取自动生成的主键</a></span></dt><dt><span class="section"><a href="jdbc.html#jdbc-simple-jdbc-insert-3">18.5.3. 为SimpleJdbcInsert指定列</a></span></dt><dt><span class="section"><a href="jdbc.html#jdbc-simple-jdbc-parameters">18.5.4. 使用 SqlParameterSource 提供参数值</a></span></dt><dt><span class="section"><a href="jdbc.html#jdbc-simple-jdbc-call-1">18.5.5. 使用SimpleJdbcCall调用存储过程</a></span></dt><dt><span class="section"><a href="jdbc.html#jdbc-simple-jdbc-call-2">18.5.6. 用于SimpleJdbcCall的显式参数声明</a></span></dt><dt><span class="section"><a href="jdbc.html#jdbc-params">18.5.7. 如何定义 SqlParameters</a></span></dt><dt><span class="section"><a href="jdbc.html#jdbc-simple-jdbc-call-3">18.5.8. 使用 SimpleJdbcCall 调用存储函数</a></span></dt><dt><span class="section"><a href="jdbc.html#jdbc-simple-jdbc-call-4">18.5.9. 从 SimpleJdbcCall 返回的ResultSet/REF 游标</a></span></dt></dl></dd><dt><span class="section"><a href="jdbc.html#jdbc-object">18.6. 将JDBC操作建模为Java对象</a></span></dt><dd><dl><dt><span class="section"><a href="jdbc.html#jdbc-SqlQuery">18.6.1. SqlQuery</a></span></dt><dt><span class="section"><a href="jdbc.html#jdbc-MappingSqlQuery">18.6.2. MappingSqlQuery</a></span></dt><dt><span class="section"><a href="jdbc.html#jdbc-SqlUpdate">18.6.3. SqlUpdate</a></span></dt><dt><span class="section"><a href="jdbc.html#jdbc-StoredProcedure">18.6.4. StoredProcedure</a></span></dt></dl></dd><dt><span class="section"><a href="jdbc.html#jdbc-parameter-handling">18.7. 参数和数据值处理的常见问题</a></span></dt><dd><dl><dt><span class="section"><a href="jdbc.html#jdbc-type-information">18.7.1. 为参数提供SQL类型信息</a></span></dt><dt><span class="section"><a href="jdbc.html#jdbc-lob">18.7.2. 处理 BLOB 和 CLOB 对象</a></span></dt><dt><span class="section"><a href="jdbc.html#jdbc-in-clause">18.7.3. 为IN子句传递值列表</a></span></dt><dt><span class="section"><a href="jdbc.html#jdbc-complex-types">18.7.4. 为存储过程调用处理复杂类型</a></span></dt></dl></dd><dt><span class="section"><a href="jdbc.html#jdbc-embedded-database-support">18.8. 嵌入式数据库支持</a></span></dt><dd><dl><dt><span class="section"><a href="jdbc.html#jdbc-why-embedded-database">18.8.1. 为什么使用嵌入式数据库?</a></span></dt><dt><span class="section"><a href="jdbc.html#jdbc-embedded-database-xml">18.8.2. 使用Spring XML创建嵌入式数据库</a></span></dt><dt><span class="section"><a href="jdbc.html#jdbc-embedded-database-java">18.8.3. 以编程方式创建嵌入式数据库</a></span></dt><dt><span class="section"><a href="jdbc.html#jdbc-embedded-database-types">18.8.4. 选择嵌入式数据库的类型</a></span></dt><dd><dl><dt><span class="section"><a href="jdbc.html#jdbc-embedded-database-using-HSQL">使用 HSQL</a></span></dt><dt><span class="section"><a href="jdbc.html#jdbc-embedded-database-using-H2">使用 H2</a></span></dt><dt><span class="section"><a href="jdbc.html#jdbc-embedded-database-using-Derby">使用 Derby</a></span></dt></dl></dd><dt><span class="section"><a href="jdbc.html#jdbc-embedded-database-dao-testing">18.8.5. 使用嵌入式数据库测试数据访问逻辑</a></span></dt><dt><span class="section"><a href="jdbc.html#jdbc-embedded-database-unique-names">18.8.6. 为嵌入式数据库生成唯一的名称</a></span></dt><dt><span class="section"><a href="jdbc.html#jdbc-embedded-database-extension">18.8.7. 扩展的嵌入式数据库的支持</a></span></dt></dl></dd><dt><span class="section"><a href="jdbc.html#jdbc-intializing-datasource">18.9. 初始化DataSource</a></span></dt><dd><dl><dt><span class="section"><a href="jdbc.html#jdbc-initializing-datasource-xml">18.9.1. 使用Spring XML 初始化数据库</a></span></dt><dd><dl><dt><span class="section"><a href="jdbc.html#jdbc-client-component-initialization">依赖于数据库的其它组件的初始化</a></span></dt></dl></dd></dl></dd></dl></dd><dt><span class="chapter"><a href="orm.html">19. 对象关系映射 (ORM) 数据访问</a></span></dt><dd><dl><dt><span class="section"><a href="orm.html#orm-introduction">19.1. Spring ORM简介</a></span></dt><dt><span class="section"><a href="orm.html#orm-general">19.2. 通用 ORM 集成注意事项</a></span></dt><dd><dl><dt><span class="section"><a href="orm.html#orm-resource-mngmnt">19.2.1. 资源和事务管理</a></span></dt><dt><span class="section"><a href="orm.html#orm-exception-translation">19.2.2. 异常翻译</a></span></dt></dl></dd><dt><span class="section"><a href="orm.html#orm-hibernate">19.3. Hibernate</a></span></dt><dd><dl><dt><span class="section"><a href="orm.html#orm-session-factory-setup">19.3.1. Spring容器中SessionFactory的设置</a></span></dt><dt><span class="section"><a href="orm.html#orm-hibernate-straight">19.3.2. 基于简单的Hibernate 3 API实现DAO</a></span></dt><dt><span class="section"><a href="orm.html#orm-hibernate-tx-declarative">19.3.3. 声明式事务边界</a></span></dt><dt><span class="section"><a href="orm.html#orm-hibernate-tx-programmatic">19.3.4. 编程式事务边界</a></span></dt><dt><span class="section"><a href="orm.html#orm-hibernate-tx-strategies">19.3.5. 事务管理策略</a></span></dt><dt><span class="section"><a href="orm.html#orm-hibernate-resources">19.3.6. 比较容器管理和本地定义的资源</a></span></dt><dt><span class="section"><a href="orm.html#orm-hibernate-invalid-jdbc-access-error">19.3.7. Hibernate欺骗性应用服务器警告</a></span></dt></dl></dd><dt><span class="section"><a href="orm.html#orm-jdo">19.4. JDO</a></span></dt><dd><dl><dt><span class="section"><a href="orm.html#orm-jdo-setup">19.4.1. PersistenceManagerFactory设置</a></span></dt><dt><span class="section"><a href="orm.html#orm-jdo-daos-straight">19.4.2. 基于简单的JDO API实现DAO</a></span></dt><dt><span class="section"><a href="orm.html#orm-jdo-tx">19.4.3. 事务管理</a></span></dt><dt><span class="section"><a href="orm.html#orm-jdo-dialect">19.4.4. JdoDialect</a></span></dt></dl></dd><dt><span class="section"><a href="orm.html#orm-jpa">19.5. JPA</a></span></dt><dd><dl><dt><span class="section"><a href="orm.html#orm-jpa-setup">19.5.1. Spring环境下的JPA设置的三种选择</a></span></dt><dd><dl><dt><span class="section"><a href="orm.html#orm-jpa-setup-lemfb">LocalEntityManagerFactoryBean</a></span></dt><dt><span class="section"><a href="orm.html#orm-jpa-setup-jndi">从 JNDI 获得一个EntityManagerFactory</a></span></dt><dt><span class="section"><a href="orm.html#orm-jpa-setup-lcemfb">LocalContainerEntityManagerFactoryBean</a></span></dt><dt><span class="section"><a href="orm.html#orm-jpa-multiple-pu">处理多个持久化单元</a></span></dt></dl></dd><dt><span class="section"><a href="orm.html#orm-jpa-straight">19.5.2. 基于简单的JPA实现DAO</a></span></dt><dt><span class="section"><a href="orm.html#orm-jpa-tx">19.5.3. 事务管理</a></span></dt><dt><span class="section"><a href="orm.html#orm-jpa-dialect">19.5.4. JpaDialect</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="oxm.html">20. 使用 O/X 映射器编组XML</a></span></dt><dd><dl><dt><span class="section"><a href="oxm.html#oxm-introduction">20.1. 简介</a></span></dt><dd><dl><dt><span class="section"><a href="oxm.html#_ease_of_configuration">20.1.1. 配置的简便性</a></span></dt><dt><span class="section"><a href="oxm.html#_consistent_interfaces">20.1.2. 一致性接口</a></span></dt><dt><span class="section"><a href="oxm.html#_consistent_exception_hierarchy">20.1.3. 一致的异常层次结构</a></span></dt></dl></dd><dt><span class="section"><a href="oxm.html#oxm-marshaller-unmarshaller">20.2. Marshaller 和 Unmarshaller</a></span></dt><dd><dl><dt><span class="section"><a href="oxm.html#oxm-marshaller">20.2.1. Marshaller</a></span></dt><dt><span class="section"><a href="oxm.html#oxm-unmarshaller">20.2.2. Unmarshaller</a></span></dt><dt><span class="section"><a href="oxm.html#oxm-xmlmappingexception">20.2.3. XmlMappingException</a></span></dt></dl></dd><dt><span class="section"><a href="oxm.html#oxm-usage">20.3. 使用Marshaller 和 Unmarshaller</a></span></dt><dt><span class="section"><a href="oxm.html#oxm-schema-based-config">20.4. 基于XML Schema的配置</a></span></dt><dt><span class="section"><a href="oxm.html#oxm-jaxb">20.5. JAXB</a></span></dt><dd><dl><dt><span class="section"><a href="oxm.html#oxm-jaxb2">20.5.1. Jaxb2Marshaller</a></span></dt><dd><dl><dt><span class="section"><a href="oxm.html#oxm-jaxb2-xsd">基于XML Schema的配置</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="oxm.html#oxm-castor">20.6. Castor</a></span></dt><dd><dl><dt><span class="section"><a href="oxm.html#oxm-castor-marshaller">20.6.1. CastorMarshaller</a></span></dt><dt><span class="section"><a href="oxm.html#oxm-castor-mapping">20.6.2. Mapping</a></span></dt><dd><dl><dt><span class="section"><a href="oxm.html#oxm-castor-xsd">基于XML Schema的配置</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="oxm.html#oxm-xmlbeans">20.7. XMLBeans</a></span></dt><dd><dl><dt><span class="section"><a href="oxm.html#oxm-xmlbeans-marshaller">20.7.1. XmlBeansMarshaller</a></span></dt><dd><dl><dt><span class="section"><a href="oxm.html#oxm-xmlbeans-xsd">基于XML Schema的配置</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="oxm.html#oxm-jibx">20.8. JiBX</a></span></dt><dd><dl><dt><span class="section"><a href="oxm.html#oxm-jibx-marshaller">20.8.1. JibxMarshaller</a></span></dt><dd><dl><dt><span class="section"><a href="oxm.html#oxm-jibx-xsd">基于XML Schema的配置</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="oxm.html#oxm-xstream">20.9. XStream</a></span></dt><dd><dl><dt><span class="section"><a href="oxm.html#oxm-xstream-marshaller">20.9.1. XStreamMarshaller</a></span></dt></dl></dd></dl></dd></dl></dd><dt><span class="part"><a href="spring-web.html">VI. Web</a></span></dt><dd><dl><dt><span class="chapter"><a href="mvc.html">21. Web MVC 框架</a></span></dt><dd><dl><dt><span class="section"><a href="mvc.html#mvc-introduction">21.1. Spring Web MVC框架简介</a></span></dt><dd><dl><dt><span class="section"><a href="mvc.html#mvc-features">21.1.1. Spring Web MVC的特点</a></span></dt><dt><span class="section"><a href="mvc.html#mvc-introduction-pluggability">21.1.2. 其它MVC实现的可插拔性</a></span></dt></dl></dd><dt><span class="section"><a href="mvc.html#mvc-servlet">21.2. DispatcherServlet</a></span></dt><dd><dl><dt><span class="section"><a href="mvc.html#mvc-servlet-special-bean-types">21.2.1. WebApplicationContext 中特殊的 Bean 类型</a></span></dt><dt><span class="section"><a href="mvc.html#mvc-servlet-config">21.2.2. 默认的 DispatcherServlet 配置</a></span></dt><dt><span class="section"><a href="mvc.html#mvc-servlet-sequence">21.2.3. DispatcherServlet 处理顺序</a></span></dt></dl></dd><dt><span class="section"><a href="mvc.html#mvc-controller">21.3. 实现控制器</a></span></dt><dd><dl><dt><span class="section"><a href="mvc.html#mvc-ann-controller">21.3.1. 使用@Controller 定义控制器</a></span></dt><dt><span class="section"><a href="mvc.html#mvc-ann-requestmapping">21.3.2. 使用@RequestMapping 映射请求</a></span></dt><dd><dl><dt><span class="section"><a href="mvc.html#mvc-ann-requestmapping-proxying">@Controller 和 AOP 代理</a></span></dt><dt><span class="section"><a href="mvc.html#mvc-ann-requestmapping-31-vs-30">Spring MVC 3.1中@RequestMapping方法的新的支持类</a></span></dt><dt><span class="section"><a href="mvc.html#mvc-ann-requestmapping-uri-templates">URI 模板模式</a></span></dt><dt><span class="section"><a href="mvc.html#mvc-ann-requestmapping-uri-templates-regex">使用正则表达式的 URI 模板模式</a></span></dt><dt><span class="section"><a href="mvc.html#mvc-ann-requestmapping-patterns">路径模式</a></span></dt><dt><span class="section"><a href="mvc.html#mvc-ann-requestmapping-pattern-comparison">路径模式比较</a></span></dt><dt><span class="section"><a href="mvc.html#mvc-ann-requestmapping-placeholders">带有占位符的路径模式</a></span></dt><dt><span class="section"><a href="mvc.html#mvc-ann-requestmapping-suffix-pattern-match">后缀模式匹配</a></span></dt><dt><span class="section"><a href="mvc.html#mvc-ann-requestmapping-rfd">后缀模式匹配和 RFD</a></span></dt><dt><span class="section"><a href="mvc.html#mvc-ann-matrix-variables">矩阵变量</a></span></dt><dt><span class="section"><a href="mvc.html#mvc-ann-requestmapping-consumes">可消费的媒体类型</a></span></dt><dt><span class="section"><a href="mvc.html#mvc-ann-requestmapping-produces">可生产的媒体类型</a></span></dt><dt><span class="section"><a href="mvc.html#mvc-ann-requestmapping-params-and-headers">请求参数和请求头的值</a></span></dt></dl></dd><dt><span class="section"><a href="mvc.html#mvc-ann-methods">21.3.3. 定义 @RequestMapping 处理方法</a></span></dt><dd><dl><dt><span class="section"><a href="mvc.html#mvc-ann-arguments">受支持的方法参数类型</a></span></dt><dt><span class="section"><a href="mvc.html#mvc-ann-return-types">支持方法的返类型</a></span></dt><dt><span class="section"><a href="mvc.html#mvc-ann-requestparam">使用@RequestParam将请求参数绑定到方法参数上</a></span></dt><dt><span class="section"><a href="mvc.html#mvc-ann-requestbody">使用@RequestBody注解映射请求体</a></span></dt><dt><span class="section"><a href="mvc.html#mvc-ann-responsebody">使用@ResponseBody注解映射响应体</a></span></dt><dt><span class="section"><a href="mvc.html#mvc-ann-restcontroller">使用@RestController注解创建REST控制器</a></span></dt><dt><span class="section"><a href="mvc.html#mvc-ann-httpentity">使用 HttpEntity</a></span></dt><dt><span class="section"><a href="mvc.html#mvc-ann-modelattrib-methods">在方法上使用 @ModelAttribute</a></span></dt><dt><span class="section"><a href="mvc.html#mvc-ann-modelattrib-method-args">在方法参数上使用 @ModelAttribute</a></span></dt><dt><span class="section"><a href="mvc.html#mvc-ann-sessionattrib">使用 @SessionAttributes 将模型属性存储在请求之间的 HTTP 会话中</a></span></dt><dt><span class="section"><a href="mvc.html#mvc-ann-form-urlencoded-data">处理"application/x-www-form-urlencoded"数据</a></span></dt><dt><span class="section"><a href="mvc.html#mvc-ann-cookievalue">使用@CookieValue注解映射Cookie值</a></span></dt><dt><span class="section"><a href="mvc.html#mvc-ann-requestheader">使用@RequestHeader注解映射请求头属性</a></span></dt><dt><span class="section"><a href="mvc.html#mvc-ann-typeconversion">方法参数和类型转换</a></span></dt><dt><span class="section"><a href="mvc.html#mvc-ann-webdatabinder">自定义 WebDataBinder 的初始化</a></span></dt><dt><span class="section"><a href="mvc.html#mvc-ann-controller-advice">使用@ControllerAdvice通知控制器</a></span></dt><dt><span class="section"><a href="mvc.html#mvc-ann-jsonview">支持Jackson 序列化视图</a></span></dt><dt><span class="section"><a href="mvc.html#mvc-ann-jsonp">支持Jackson JSONP</a></span></dt></dl></dd><dt><span class="section"><a href="mvc.html#mvc-ann-async">21.3.4. 异步请求处理</a></span></dt><dd><dl><dt><span class="section"><a href="mvc.html#mvc-ann-async-exceptions">异步请求的异常处理</a></span></dt><dt><span class="section"><a href="mvc.html#mvc-ann-async-interception">拦截异步请求</a></span></dt><dt><span class="section"><a href="mvc.html#mvc-ann-async-http-streaming">HTTP 流</a></span></dt><dt><span class="section"><a href="mvc.html#mvc-ann-async-sse">服务端发送事件的HTTP 流</a></span></dt><dt><span class="section"><a href="mvc.html#mvc-ann-async-output-stream">HTTP流直接写入OutputStream</a></span></dt><dt><span class="section"><a href="mvc.html#mvc-ann-async-configuration">配置异步请求处理</a></span></dt></dl></dd><dt><span class="section"><a href="mvc.html#mvc-ann-tests">21.3.5. 测试控制器</a></span></dt></dl></dd><dt><span class="section"><a href="mvc.html#mvc-handlermapping">21.4. 处理器映射</a></span></dt><dd><dl><dt><span class="section"><a href="mvc.html#mvc-handlermapping-interceptor">21.4.1. 使用HandlerInterceptor拦截请求</a></span></dt></dl></dd><dt><span class="section"><a href="mvc.html#mvc-viewresolver">21.5. 视图解析</a></span></dt><dd><dl><dt><span class="section"><a href="mvc.html#mvc-viewresolver-resolver">21.5.1. 使用ViewResolver接口进行视图解析</a></span></dt><dt><span class="section"><a href="mvc.html#mvc-viewresolver-chaining">21.5.2. 链接ViewResolver</a></span></dt><dt><span class="section"><a href="mvc.html#mvc-redirecting">21.5.3. 重定向到视图</a></span></dt><dd><dl><dt><span class="section"><a href="mvc.html#mvc-redirecting-redirect-view">RedirectView</a></span></dt><dt><span class="section"><a href="mvc.html#mvc-redirecting-redirect-prefix">redirect: 前缀</a></span></dt><dt><span class="section"><a href="mvc.html#mvc-redirecting-forward-prefix">forward: 前缀</a></span></dt></dl></dd><dt><span class="section"><a href="mvc.html#mvc-multiple-representations">21.5.4. ContentNegotiatingViewResolver</a></span></dt></dl></dd><dt><span class="section"><a href="mvc.html#mvc-flash-attributes">21.6. 使用瞬间属性</a></span></dt><dt><span class="section"><a href="mvc.html#mvc-uri-building">21.7. 构建URI</a></span></dt><dd><dl><dt><span class="section"><a href="mvc.html#mvc-links-to-controllers">21.7.1. 构建到控制器和方法的URI</a></span></dt><dt><span class="section"><a href="mvc.html#mvc-links-to-controllers-from-views">21.7.2. 从视图中构建到控制器和方法的URI</a></span></dt></dl></dd><dt><span class="section"><a href="mvc.html#mvc-localeresolver">21.8. 使用区域设置</a></span></dt><dd><dl><dt><span class="section"><a href="mvc.html#mvc-timezone">21.8.1. 获取时区信息</a></span></dt><dt><span class="section"><a href="mvc.html#mvc-localeresolver-acceptheader">21.8.2. AcceptHeaderLocaleResolver</a></span></dt><dt><span class="section"><a href="mvc.html#mvc-localeresolver-cookie">21.8.3. CookieLocaleResolver</a></span></dt><dt><span class="section"><a href="mvc.html#mvc-localeresolver-session">21.8.4. SessionLocaleResolver</a></span></dt><dt><span class="section"><a href="mvc.html#mvc-localeresolver-interceptor">21.8.5. LocaleChangeInterceptor</a></span></dt></dl></dd><dt><span class="section"><a href="mvc.html#mvc-themeresolver">21.9. 使用主题</a></span></dt><dd><dl><dt><span class="section"><a href="mvc.html#mvc-themeresolver-introduction">21.9.1. 主题简介</a></span></dt><dt><span class="section"><a href="mvc.html#mvc-themeresolver-defining">21.9.2. 定义主题</a></span></dt><dt><span class="section"><a href="mvc.html#mvc-themeresolver-resolving">21.9.3. 主题解析器</a></span></dt></dl></dd><dt><span class="section"><a href="mvc.html#mvc-multipart">21.10. Spring的multipart(文件上传)支持</a></span></dt><dd><dl><dt><span class="section"><a href="mvc.html#mvc-multipart-introduction">21.10.1. 简介</a></span></dt><dt><span class="section"><a href="mvc.html#mvc-multipart-resolver-commons">21.10.2. <span class="emphasis"><em>Commons FileUpload</em></span>中使用MultipartResolver</a></span></dt><dt><span class="section"><a href="mvc.html#mvc-multipart-resolver-standard">21.10.3.  <span class="emphasis"><em>Servlet 3.0</em></span>使用MultipartResolver</a></span></dt><dt><span class="section"><a href="mvc.html#mvc-multipart-forms">21.10.4. 处理表单中的文件上传</a></span></dt><dt><span class="section"><a href="mvc.html#mvc-multipart-forms-non-browsers">21.10.5. 处理编程客户端中的文件上传请求</a></span></dt></dl></dd><dt><span class="section"><a href="mvc.html#mvc-exceptionhandlers">21.11. 处理异常</a></span></dt><dd><dl><dt><span class="section"><a href="mvc.html#mvc-exceptionhandlers-resolver">21.11.1. HandlerExceptionResolver</a></span></dt><dt><span class="section"><a href="mvc.html#mvc-ann-exceptionhandler">21.11.2. @ExceptionHandler</a></span></dt><dt><span class="section"><a href="mvc.html#mvc-ann-rest-spring-mvc-exceptions">21.11.3. 处理标准的Spring MVC 异常</a></span></dt><dt><span class="section"><a href="mvc.html#mvc-ann-annotated-exceptions">21.11.4. 使用@ResponseStatus注解业务异常</a></span></dt><dt><span class="section"><a href="mvc.html#mvc-ann-customer-servlet-container-error-page">21.11.5. 自定义 Servlet 容器默认的错误页面</a></span></dt></dl></dd><dt><span class="section"><a href="mvc.html#mvc-web-security">21.12. Web 安全</a></span></dt><dt><span class="section"><a href="mvc.html#mvc-coc">21.13. 约定优于配置</a></span></dt><dd><dl><dt><span class="section"><a href="mvc.html#mvc-coc-ccnhm">21.13.1. 控制器ControllerClassNameHandlerMapping</a></span></dt><dt><span class="section"><a href="mvc.html#mvc-coc-modelmap">21.13.2. 模型ModelMap (ModelAndView)</a></span></dt><dt><span class="section"><a href="mvc.html#mvc-coc-r2vnt">21.13.3. 视图 - RequestToViewNameTranslator</a></span></dt></dl></dd><dt><span class="section"><a href="mvc.html#mvc-caching">21.14. HTTP 缓存</a></span></dt><dd><dl><dt><span class="section"><a href="mvc.html#mvc-caching-cachecontrol">21.14.1. Cache-Control HTTP 头</a></span></dt><dt><span class="section"><a href="mvc.html#mvc-caching-static-resources">21.14.2. 静态资源的HTTP 缓存</a></span></dt><dt><span class="section"><a href="mvc.html#mvc-caching-etag-lastmodified">21.14.3. 在控制器中支持 Cache-Control, ETag 和 Last-Modified响应头</a></span></dt><dt><span class="section"><a href="mvc.html#mvc-httpcaching-shallowetag">21.14.4. ETag浅支持</a></span></dt></dl></dd><dt><span class="section"><a href="mvc.html#mvc-container-config">21.15. 基于代码的 Servlet 容器初始化</a></span></dt><dt><span class="section"><a href="mvc.html#mvc-config">21.16. 配置 Spring MVC</a></span></dt><dd><dl><dt><span class="section"><a href="mvc.html#mvc-config-enable">21.16.1. 启用MVC Java配置或MVC XML命名空间</a></span></dt><dt><span class="section"><a href="mvc.html#mvc-config-customize">21.16.2. 自定义已提供的配置</a></span></dt><dt><span class="section"><a href="mvc.html#mvc-config-conversion">21.16.3. 转换和格式</a></span></dt><dt><span class="section"><a href="mvc.html#mvc-config-validation">21.16.4. 校验</a></span></dt><dt><span class="section"><a href="mvc.html#mvc-config-interceptors">21.16.5. 拦截器</a></span></dt><dt><span class="section"><a href="mvc.html#mvc-config-content-negotiation">21.16.6. 内容协商</a></span></dt><dt><span class="section"><a href="mvc.html#mvc-config-view-controller">21.16.7. 视图控制器</a></span></dt><dt><span class="section"><a href="mvc.html#mvc-config-view-resolvers">21.16.8. 视图解析器</a></span></dt><dt><span class="section"><a href="mvc.html#mvc-config-static-resources">21.16.9. 资源服务</a></span></dt><dt><span class="section"><a href="mvc.html#mvc-default-servlet-handler">21.16.10. 服务资源的"默认"Servlet上的回退</a></span></dt><dt><span class="section"><a href="mvc.html#mvc-config-path-matching">21.16.11. 路径匹配</a></span></dt><dt><span class="section"><a href="mvc.html#mvc-config-message-converters">21.16.12. 消息转换器</a></span></dt><dt><span class="section"><a href="mvc.html#mvc-config-advanced-java">21.16.13. 使用MVC Java配置进行高级自定义</a></span></dt><dt><span class="section"><a href="mvc.html#mvc-config-advanced-xml">21.16.14. 使用MVC 命名空间进行高级自定义</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="view.html">22. 视图技术</a></span></dt><dd><dl><dt><span class="section"><a href="view.html#view-introduction">22.1. 简介</a></span></dt><dt><span class="section"><a href="view.html#view-thymeleaf">22.2. Thymeleaf</a></span></dt><dt><span class="section"><a href="view.html#view-groovymarkup">22.3. Groovy 标记模板</a></span></dt><dd><dl><dt><span class="section"><a href="view.html#view-groovymarkup-configuration">22.3.1. 配置</a></span></dt><dt><span class="section"><a href="view.html#view-groovymarkup-example">22.3.2. 示例</a></span></dt></dl></dd><dt><span class="section"><a href="view.html#view-velocity">22.4. Velocity 与 FreeMarker</a></span></dt><dd><dl><dt><span class="section"><a href="view.html#view-velocity-dependencies">22.4.1. 依赖</a></span></dt><dt><span class="section"><a href="view.html#view-velocity-contextconfig">22.4.2. 上下文配置</a></span></dt><dt><span class="section"><a href="view.html#view-velocity-createtemplates">22.4.3. 创建模板</a></span></dt><dt><span class="section"><a href="view.html#view-velocity-advancedconfig">22.4.4. 高级配置</a></span></dt><dd><dl><dt><span class="section"><a href="view.html#view-velocity-example-velocityproperties">velocity.properties</a></span></dt><dt><span class="section"><a href="view.html#views-freemarker">FreeMarker</a></span></dt></dl></dd><dt><span class="section"><a href="view.html#view-velocity-forms">22.4.5. 绑定支持和表单处理</a></span></dt><dd><dl><dt><span class="section"><a href="view.html#view-bind-macros">绑定宏</a></span></dt><dt><span class="section"><a href="view.html#view-simple-binding">简单绑定</a></span></dt><dt><span class="section"><a href="view.html#views-form-macros">表单输入的生成宏</a></span></dt><dt><span class="section"><a href="view.html#views-form-macros-html-escaping">HTML 转义和符合 XHTML 标准</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="view.html#view-jsp">22.5. JSP &amp; JSTL</a></span></dt><dd><dl><dt><span class="section"><a href="view.html#view-jsp-resolver">22.5.1. 视图解析器</a></span></dt><dt><span class="section"><a href="view.html#view-jsp-jstl">22.5.2. '普通' JSP 对比 JSTL</a></span></dt><dt><span class="section"><a href="view.html#view-jsp-tags">22.5.3. 方便开发的其它标签</a></span></dt><dt><span class="section"><a href="view.html#view-jsp-formtaglib">22.5.4. 使用 Spring 的表单标签库</a></span></dt><dd><dl><dt><span class="section"><a href="view.html#view-jsp-formtaglib-configuration">配置</a></span></dt><dt><span class="section"><a href="view.html#view-jsp-formtaglib-formtag">form标签</a></span></dt><dt><span class="section"><a href="view.html#view-jsp-formtaglib-inputtag">input标签</a></span></dt><dt><span class="section"><a href="view.html#view-jsp-formtaglib-checkboxtag">checkbox标签</a></span></dt><dt><span class="section"><a href="view.html#view-jsp-formtaglib-checkboxestag">checkboxes标签</a></span></dt><dt><span class="section"><a href="view.html#view-jsp-formtaglib-radiobuttontag">radiobutton标签</a></span></dt><dt><span class="section"><a href="view.html#view-jsp-formtaglib-radiobuttonstag">radiobuttons标签</a></span></dt><dt><span class="section"><a href="view.html#view-jsp-formtaglib-passwordtag">password标签</a></span></dt><dt><span class="section"><a href="view.html#view-jsp-formtaglib-selecttag">select标签</a></span></dt><dt><span class="section"><a href="view.html#view-jsp-formtaglib-optiontag">option标签</a></span></dt><dt><span class="section"><a href="view.html#view-jsp-formtaglib-optionstag">options标签</a></span></dt><dt><span class="section"><a href="view.html#view-jsp-formtaglib-textareatag">textarea标签</a></span></dt><dt><span class="section"><a href="view.html#view-jsp-formtaglib-hiddeninputtag">hidden标签</a></span></dt><dt><span class="section"><a href="view.html#view-jsp-formtaglib-errorstag">errors标签</a></span></dt><dt><span class="section"><a href="view.html#rest-method-conversion">HTTP方法转换</a></span></dt><dt><span class="section"><a href="view.html#view-jsp-formtaglib-html5">HTML5 标签</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="view.html#view-script">22.6. 脚本模板</a></span></dt><dd><dl><dt><span class="section"><a href="view.html#view-script-dependencies">22.6.1. 依赖</a></span></dt><dt><span class="section"><a href="view.html#view-script-integrate">22.6.2. 如何集成基于模板的脚本</a></span></dt></dl></dd><dt><span class="section"><a href="view.html#view-xml-marshalling">22.7. 编组的 XML 视图</a></span></dt><dt><span class="section"><a href="view.html#view-tiles">22.8. Tiles</a></span></dt><dd><dl><dt><span class="section"><a href="view.html#view-tiles-dependencies">22.8.1. 依赖</a></span></dt><dt><span class="section"><a href="view.html#view-tiles-integrate">22.8.2. 如何集成Tiles</a></span></dt><dd><dl><dt><span class="section"><a href="view.html#view-tiles-url">UrlBasedViewResolver</a></span></dt><dt><span class="section"><a href="view.html#view-tiles-resource">ResourceBundleViewResolver</a></span></dt><dt><span class="section"><a href="view.html#view-tiles-preparer">SimpleSpringPreparerFactory 和 SpringBeanPreparerFactory</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="view.html#view-xslt">22.9. XSLT</a></span></dt><dd><dl><dt><span class="section"><a href="view.html#view-xslt-firstwords">22.9.1. My First Words</a></span></dt><dd><dl><dt><span class="section"><a href="view.html#view-xslt-beandefs">Bean 定义</a></span></dt><dt><span class="section"><a href="view.html#view-xslt-controllercode">标准 MVC 控制器代码</a></span></dt><dt><span class="section"><a href="view.html#view-xslt-transforming">文档转换</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="view.html#view-document">22.10. 文档视图 (PDF/Excel)</a></span></dt><dd><dl><dt><span class="section"><a href="view.html#view-document-intro">22.10.1. 简介</a></span></dt><dt><span class="section"><a href="view.html#view-document-config">22.10.2. 配置和设置</a></span></dt><dd><dl><dt><span class="section"><a href="view.html#view-document-configviews">文档视图定义</a></span></dt><dt><span class="section"><a href="view.html#view-document-configcontroller">控制器代码</a></span></dt><dt><span class="section"><a href="view.html#view-document-configsubclasses">为excel视图进行子类化</a></span></dt><dt><span class="section"><a href="view.html#view-document-configsubclasspdf">为PDF视图进行子类化</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="view.html#view-jasper-reports">22.11. JasperReports</a></span></dt><dd><dl><dt><span class="section"><a href="view.html#view-jasper-reports-dependencies">22.11.1. 依赖</a></span></dt><dt><span class="section"><a href="view.html#view-jasper-reports-configuration">22.11.2. 配置</a></span></dt><dd><dl><dt><span class="section"><a href="view.html#view-jasper-reports-configuration-resolver">配置 ViewResolver</a></span></dt><dt><span class="section"><a href="view.html#view-jasper-reports-configuration-views">配置视图</a></span></dt><dt><span class="section"><a href="view.html#view-jasper-reports-configuration-report-files">关于 Report 文件</a></span></dt><dt><span class="section"><a href="view.html#view-jasper-reports-configuration-multiformat-view">使用 JasperReportsMultiFormatView</a></span></dt></dl></dd><dt><span class="section"><a href="view.html#view-jasper-reports-model">22.11.3. 填充 ModelAndView</a></span></dt><dt><span class="section"><a href="view.html#view-jasper-reports-subreports">22.11.4. 使用子报表</a></span></dt><dd><dl><dt><span class="section"><a href="view.html#view-jasper-reports-subreports-config-reports">配置子报表文件</a></span></dt><dt><span class="section"><a href="view.html#view-jasper-reports-subreports-config-datasources">配置子报表数据源</a></span></dt></dl></dd><dt><span class="section"><a href="view.html#view-jasper-reports-exporter-parameters">22.11.5. 配置输出参数</a></span></dt></dl></dd><dt><span class="section"><a href="view.html#view-feeds">22.12. Feed 视图</a></span></dt><dt><span class="section"><a href="view.html#view-json-mapping">22.13. JSON 映射视图</a></span></dt><dt><span class="section"><a href="view.html#view-xml-mapping">22.14. XML 映射视图</a></span></dt></dl></dd><dt><span class="chapter"><a href="web-integration.html">23. 与其他 web 框架集成</a></span></dt><dd><dl><dt><span class="section"><a href="web-integration.html#intro">23.1. 简介</a></span></dt><dt><span class="section"><a href="web-integration.html#web-integration-common">23.2. 常见的配置</a></span></dt><dt><span class="section"><a href="web-integration.html#jsf">23.3. JavaServer Faces 1.2</a></span></dt><dd><dl><dt><span class="section"><a href="web-integration.html#jsf-springbeanfaceselresolver">23.3.1. SpringBeanFacesELResolver (JSF 1.2+)</a></span></dt><dt><span class="section"><a href="web-integration.html#jsf-facescontextutils">23.3.2. FacesContextUtils</a></span></dt></dl></dd><dt><span class="section"><a href="web-integration.html#struts">23.4. Apache Struts 2.x</a></span></dt><dt><span class="section"><a href="web-integration.html#tapestry">23.5. Tapestry 5.x</a></span></dt><dt><span class="section"><a href="web-integration.html#web-integration-resources">23.6. 更多资源</a></span></dt></dl></dd><dt><span class="chapter"><a href="portlet.html">24. Portlet MVC 框架</a></span></dt><dd><dl><dt><span class="section"><a href="portlet.html#portlet-introduction">24.1. 简介</a></span></dt><dd><dl><dt><span class="section"><a href="portlet.html#portlet-introduction-controller">24.1.1. 控制器-MVC 中的 C</a></span></dt><dt><span class="section"><a href="portlet.html#portlet-introduction-view">24.1.2. 视图- MVC 中的 V</a></span></dt><dt><span class="section"><a href="portlet.html#portlet-introduction-scope">24.1.3. Web作用域的Bean</a></span></dt></dl></dd><dt><span class="section"><a href="portlet.html#portlet-dispatcher">24.2. DispatcherPortlet</a></span></dt><dt><span class="section"><a href="portlet.html#portlet-viewservlet">24.3. ViewRendererServlet</a></span></dt><dt><span class="section"><a href="portlet.html#portlet-controller">24.4. 控制器</a></span></dt><dd><dl><dt><span class="section"><a href="portlet.html#portlet-controller-abstractcontroller">24.4.1. AbstractController 和 PortletContentGenerator</a></span></dt><dt><span class="section"><a href="portlet.html#portlet-controller-simple">24.4.2. 其他简单的控制器</a></span></dt><dt><span class="section"><a href="portlet.html#portlet-controller-command">24.4.3. 命令控制器</a></span></dt><dt><span class="section"><a href="portlet.html#portlet-controller-wrapping">24.4.4. PortletWrappingController</a></span></dt></dl></dd><dt><span class="section"><a href="portlet.html#portlet-handlermapping">24.5. 处理器映射</a></span></dt><dd><dl><dt><span class="section"><a href="portlet.html#portlet-handlermapping-portletmode">24.5.1. PortletModeHandlerMapping</a></span></dt><dt><span class="section"><a href="portlet.html#portlet-handlermapping-parameter">24.5.2. ParameterHandlerMapping</a></span></dt><dt><span class="section"><a href="portlet.html#portlet-handlermapping-portletmodeparameter">24.5.3. PortletModeParameterHandlerMapping</a></span></dt><dt><span class="section"><a href="portlet.html#portlet-handlermapping-interceptor">24.5.4. 添加 HandlerInterceptor</a></span></dt><dt><span class="section"><a href="portlet.html#portlet-handlermapping-interceptoradapter">24.5.5. HandlerInterceptorAdapter</a></span></dt><dt><span class="section"><a href="portlet.html#portlet-handlermapping-parameterinterceptor">24.5.6. ParameterMappingInterceptor</a></span></dt></dl></dd><dt><span class="section"><a href="portlet.html#portlet-viewresolver">24.6. 视图及其解析</a></span></dt><dt><span class="section"><a href="portlet.html#portlet-multipart">24.7. Multipart (文件上传) 支持</a></span></dt><dd><dl><dt><span class="section"><a href="portlet.html#portlet-multipart-resolver">24.7.1. 使用 PortletMultipartResolver</a></span></dt><dt><span class="section"><a href="portlet.html#portlet-multipart-forms">24.7.2. 处理表单中的文件上传</a></span></dt></dl></dd><dt><span class="section"><a href="portlet.html#portlet-exceptionresolver">24.8. 处理异常</a></span></dt><dt><span class="section"><a href="portlet.html#portlet-annotation">24.9. 基于注解的控制器配置</a></span></dt><dd><dl><dt><span class="section"><a href="portlet.html#portlet-ann-setup">24.9.1. 为注解支持设置dispatcher</a></span></dt><dt><span class="section"><a href="portlet.html#portlet-ann-controller">24.9.2. 使用@Controller 定义控制器</a></span></dt><dt><span class="section"><a href="portlet.html#portlet-ann-requestmapping">24.9.3. 使用@RequestMapping 映射请求</a></span></dt><dt><span class="section"><a href="portlet.html#portlet-ann-requestmapping-arguments">24.9.4. 受支持handler方法参数</a></span></dt><dt><span class="section"><a href="portlet.html#portlet-ann-requestparam">24.9.5. 使用@RequestParam将请求参数绑定到方法参数上</a></span></dt><dt><span class="section"><a href="portlet.html#portlet-ann-modelattrib">24.9.6. 使用@ModelAttribute为从模型到数据提供链接</a></span></dt><dt><span class="section"><a href="portlet.html#portlet-ann-sessionattrib">24.9.7. 使用@SessionAttributes指定要存储在会话中的属性</a></span></dt><dt><span class="section"><a href="portlet.html#portlet-ann-webdatabinder">24.9.8. 自定义 WebDataBinder 的初始化</a></span></dt><dd><dl><dt><span class="section"><a href="portlet.html#portlet-ann-initbinder">使用@InitBinder自定义数据绑定。</a></span></dt><dt><span class="section"><a href="portlet.html#portlet-ann-webbindinginitializer">配置自定义的 WebBindingInitializer</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="portlet.html#portlet-deployment">24.10. Portlet 应用程序部署</a></span></dt></dl></dd><dt><span class="chapter"><a href="websocket.html">25. WebSocket 支持</a></span></dt><dd><dl><dt><span class="section"><a href="websocket.html#websocket-intro">25.1. 简介</a></span></dt><dd><dl><dt><span class="section"><a href="websocket.html#websocket-into-fallback-options">25.1.1. WebSocket 回退选项</a></span></dt><dt><span class="section"><a href="websocket.html#websocket-intro-architecture">25.1.2. 消息的体系结构</a></span></dt><dt><span class="section"><a href="websocket.html#websocket-intro-sub-protocol">25.1.3. WebSocket 子协议支持</a></span></dt><dt><span class="section"><a href="websocket.html#websocket-intro-when-to-use">25.1.4. 我应该使用 WebSocket 吗?</a></span></dt></dl></dd><dt><span class="section"><a href="websocket.html#websocket-server">25.2. WebSocket API</a></span></dt><dd><dl><dt><span class="section"><a href="websocket.html#websocket-server-handler">25.2.1. 创建和配置 WebSocketHandler</a></span></dt><dt><span class="section"><a href="websocket.html#websocket-server-handshake">25.2.2. 自定义 WebSocket 握手</a></span></dt><dt><span class="section"><a href="websocket.html#websocket-server-decorators">25.2.3. WebSocketHandler 装饰</a></span></dt><dt><span class="section"><a href="websocket.html#websocket-server-deployment">25.2.4. 部署注意事项</a></span></dt><dt><span class="section"><a href="websocket.html#websocket-server-runtime-configuration">25.2.5. 配置 WebSocket 引擎</a></span></dt><dt><span class="section"><a href="websocket.html#websocket-server-allowed-origins">25.2.6. 配置允许的源</a></span></dt></dl></dd><dt><span class="section"><a href="websocket.html#websocket-fallback">25.3. SockJS 回退选项</a></span></dt><dd><dl><dt><span class="section"><a href="websocket.html#websocket-fallback-sockjs-overview">25.3.1. SockJS 简介</a></span></dt><dt><span class="section"><a href="websocket.html#websocket-fallback-sockjs-enable">25.3.2. 启用 SockJS</a></span></dt><dt><span class="section"><a href="websocket.html#websocket-fallback-xhr-vs-iframe">25.3.3. IE8、9中HTTP流：Ajax/XHR 对比 IFrame</a></span></dt><dt><span class="section"><a href="websocket.html#websocket-fallback-sockjs-heartbeat">25.3.4. 心跳消息</a></span></dt><dt><span class="section"><a href="websocket.html#websocket-fallback-sockjs-servlet3-async">25.3.5. Servlet 3 异步请求</a></span></dt><dt><span class="section"><a href="websocket.html#websocket-fallback-cors">25.3.6. SockJS 的 CORS 标头</a></span></dt><dt><span class="section"><a href="websocket.html#websocket-fallback-sockjs-client">25.3.7. SockJS 客户端</a></span></dt></dl></dd><dt><span class="section"><a href="websocket.html#websocket-stomp">25.4. WebSocket 消息体系结构上的STOMP</a></span></dt><dd><dl><dt><span class="section"><a href="websocket.html#websocket-stomp-overview">25.4.1. STOMP简介</a></span></dt><dt><span class="section"><a href="websocket.html#websocket-stomp-enable">25.4.2. WebSocket 上启用STOMP</a></span></dt><dt><span class="section"><a href="websocket.html#websocket-stomp-message-flow">25.4.3. 消息流</a></span></dt><dt><span class="section"><a href="websocket.html#websocket-stomp-handle-annotations">25.4.4. 注解消息处理</a></span></dt><dt><span class="section"><a href="websocket.html#websocket-stomp-handle-send">25.4.5. 发送消息</a></span></dt><dt><span class="section"><a href="websocket.html#websocket-stomp-handle-simple-broker">25.4.6. 简单的代理</a></span></dt><dt><span class="section"><a href="websocket.html#websocket-stomp-handle-broker-relay">25.4.7. 全功能代理</a></span></dt><dt><span class="section"><a href="websocket.html#websocket-stomp-handle-broker-relay-configure">25.4.8. 连接到全功能的代理</a></span></dt><dt><span class="section"><a href="websocket.html#websocket-stomp-destination-separator">25.4.9. 在 @MessageMapping 目的中使用点作为分隔符</a></span></dt><dt><span class="section"><a href="websocket.html#websocket-stomp-authentication">25.4.10. 身份验证</a></span></dt><dt><span class="section"><a href="websocket.html#websocket-stomp-user-destination">25.4.11. 用户目的地</a></span></dt><dt><span class="section"><a href="websocket.html#websocket-stomp-appplication-context-events">25.4.12. 监听应用上下文事件和拦截消息</a></span></dt><dt><span class="section"><a href="websocket.html#websocket-stomp-client">25.4.13. STOMP 客户端</a></span></dt><dt><span class="section"><a href="websocket.html#websocket-stomp-websocket-scope">25.4.14. WebSocket 作用域</a></span></dt><dt><span class="section"><a href="websocket.html#websocket-stomp-configuration-performance">25.4.15. 配置和性能</a></span></dt><dt><span class="section"><a href="websocket.html#websocket-stomp-stats">25.4.16. 运行时监控</a></span></dt><dt><span class="section"><a href="websocket.html#websocket-stomp-testing">25.4.17. 测试注解的控制器方法</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="cors.html">26. CORS 支持</a></span></dt><dd><dl><dt><span class="section"><a href="cors.html#_introduction">26.1. 简介</a></span></dt><dt><span class="section"><a href="cors.html#_controller_method_cors_configuration">26.2. 控制器方法 CORS 配置</a></span></dt><dt><span class="section"><a href="cors.html#_global_cors_configuration">26.3. 全局 CORS 配置</a></span></dt><dd><dl><dt><span class="section"><a href="cors.html#_javaconfig">26.3.1. JavaConfig</a></span></dt><dt><span class="section"><a href="cors.html#_xml_namespace">26.3.2. XML 命名空间</a></span></dt></dl></dd><dt><span class="section"><a href="cors.html#_advanced_customization">26.4. 高级自定义</a></span></dt></dl></dd></dl></dd><dt><span class="part"><a href="spring-integration.html">VII. 集成</a></span></dt><dd><dl><dt><span class="chapter"><a href="remoting.html">27. 使用 Spring 的远程处理和 web 服务</a></span></dt><dd><dl><dt><span class="section"><a href="remoting.html#remoting-introduction">27.1. 简介</a></span></dt><dt><span class="section"><a href="remoting.html#remoting-rmi">27.2. 使用RMI暴露服务</a></span></dt><dd><dl><dt><span class="section"><a href="remoting.html#remoting-rmi-server">27.2.1. 使用RmiServiceExporter暴露服务</a></span></dt><dt><span class="section"><a href="remoting.html#remoting-rmi-client">27.2.2. 在客户端上连接服务</a></span></dt></dl></dd><dt><span class="section"><a href="remoting.html#remoting-caucho-protocols">27.3. 通过HTTP使用Hessian或Burlap进行远程调用</a></span></dt><dd><dl><dt><span class="section"><a href="remoting.html#remoting-caucho-protocols-hessian">27.3.1. 为Hessian连接到DispatcherServlet</a></span></dt><dt><span class="section"><a href="remoting.html#remoting-caucho-protocols-hessian-server">27.3.2. 使用 HessianServiceExporter 暴露Bean</a></span></dt><dt><span class="section"><a href="remoting.html#remoting-caucho-protocols-hessian-client">27.3.3. 在客户端上连接服务</a></span></dt><dt><span class="section"><a href="remoting.html#remoting-caucho-protocols-burlap">27.3.4. 使用Burlap</a></span></dt><dt><span class="section"><a href="remoting.html#remoting-caucho-protocols-security">27.3.5. 将 HTTP 基本身份验证应用于通过Hessian或Burlap暴露的服务</a></span></dt></dl></dd><dt><span class="section"><a href="remoting.html#remoting-httpinvoker">27.4. 通过HTTP调用器暴露服务</a></span></dt><dd><dl><dt><span class="section"><a href="remoting.html#remoting-httpinvoker-server">27.4.1. 暴露服务对象</a></span></dt><dt><span class="section"><a href="remoting.html#remoting-httpinvoker-client">27.4.2. 在客户端上连接服务</a></span></dt></dl></dd><dt><span class="section"><a href="remoting.html#remoting-web-services">27.5. Web 服务</a></span></dt><dd><dl><dt><span class="section"><a href="remoting.html#remoting-web-services-jaxws-export-servlet">27.5.1. 使用 JAX-WS 暴露基于 servlet 的 web 服务</a></span></dt><dt><span class="section"><a href="remoting.html#remoting-web-services-jaxws-export-standalone">27.5.2. 使用 JAX-WS 暴露独立的Web服务</a></span></dt><dt><span class="section"><a href="remoting.html#remoting-web-services-jaxws-export-ri">27.5.3. 使用 JAX-WS RI 的Spring支持暴露Web服务</a></span></dt><dt><span class="section"><a href="remoting.html#remoting-web-services-jaxws-access">27.5.4. 使用 JAX-WS访问 web 服务</a></span></dt></dl></dd><dt><span class="section"><a href="remoting.html#remoting-jms">27.6. JMS</a></span></dt><dd><dl><dt><span class="section"><a href="remoting.html#remoting-jms-server">27.6.1. 服务器端配置</a></span></dt><dt><span class="section"><a href="remoting.html#remoting-jms-client">27.6.2. 客户端配置</a></span></dt></dl></dd><dt><span class="section"><a href="remoting.html#remoting-amqp">27.7. AMQP</a></span></dt><dt><span class="section"><a href="remoting.html#remoting-autodection-remote-interfaces">27.8. 远程接口并未实现自动检测</a></span></dt><dt><span class="section"><a href="remoting.html#remoting-considerations">27.9. 选择技术时的注意事项</a></span></dt><dt><span class="section"><a href="remoting.html#rest-client-access">27.10. 客户端上访问 RESTful 服务</a></span></dt><dd><dl><dt><span class="section"><a href="remoting.html#rest-resttemplate">27.10.1. RestTemplate</a></span></dt><dd><dl><dt><span class="section"><a href="remoting.html#rest-resttemplate-uri">Working with the URI</a></span></dt><dt><span class="section"><a href="remoting.html#rest-template-headers">处理请求和响应标头</a></span></dt><dt><span class="section"><a href="remoting.html#rest-template-jsonview">Jackson JSON 视图支持</a></span></dt></dl></dd><dt><span class="section"><a href="remoting.html#rest-message-conversion">27.10.2. HTTP消息转换</a></span></dt><dd><dl><dt><span class="section"><a href="remoting.html#rest-string-converter">StringHttpMessageConverter</a></span></dt><dt><span class="section"><a href="remoting.html#rest-form-converter">FormHttpMessageConverter</a></span></dt><dt><span class="section"><a href="remoting.html#rest-byte-converter">ByteArrayHttpMessageConverter</a></span></dt><dt><span class="section"><a href="remoting.html#rest-marhsalling-converter">MarshallingHttpMessageConverter</a></span></dt><dt><span class="section"><a href="remoting.html#rest-mapping-json-converter">MappingJackson2HttpMessageConverter</a></span></dt><dt><span class="section"><a href="remoting.html#rest-mapping-xml-converter">MappingJackson2XmlHttpMessageConverter</a></span></dt><dt><span class="section"><a href="remoting.html#rest-source-converter">SourceHttpMessageConverter</a></span></dt><dt><span class="section"><a href="remoting.html#rest-buffered-image-converter">BufferedImageHttpMessageConverter</a></span></dt></dl></dd><dt><span class="section"><a href="remoting.html#rest-async-resttemplate">27.10.3. 异步 RestTemplate</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="ejb.html">28. 企业级 JavaBeans (EJB) 集成</a></span></dt><dd><dl><dt><span class="section"><a href="ejb.html#ejb-introduction">28.1. 简介</a></span></dt><dt><span class="section"><a href="ejb.html#ejb-access">28.2. 访问 EJB</a></span></dt><dd><dl><dt><span class="section"><a href="ejb.html#ejb-access-concepts">28.2.1. 概念</a></span></dt><dt><span class="section"><a href="ejb.html#ejb-access-local">28.2.2. 访问本地 SLSBs</a></span></dt><dt><span class="section"><a href="ejb.html#ejb-access-remote">28.2.3. 访问远程 SLSBs</a></span></dt><dt><span class="section"><a href="ejb.html#ejb-access-ejb2-ejb3">28.2.4. 访问 EJB 2.x SLSBs 与 EJB 3 SLSBs</a></span></dt></dl></dd><dt><span class="section"><a href="ejb.html#ejb-implementation">28.3. 使用Spring的 EJB 实现支持类</a></span></dt><dd><dl><dt><span class="section"><a href="ejb.html#ejb-implementation-ejb3">28.3.1. EJB 3 注射拦截器</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="jms.html">29. JMS (Java Message Service)</a></span></dt><dd><dl><dt><span class="section"><a href="jms.html#jms-introduction">29.1. 简介</a></span></dt><dt><span class="section"><a href="jms.html#jms-using">29.2. 使用 Spring JMS</a></span></dt><dd><dl><dt><span class="section"><a href="jms.html#jms-jmstemplate">29.2.1. JmsTemplate</a></span></dt><dt><span class="section"><a href="jms.html#jms-connections">29.2.2. 连接</a></span></dt><dd><dl><dt><span class="section"><a href="jms.html#jms-caching-resources">缓存消息资源</a></span></dt><dt><span class="section"><a href="jms.html#jms-connection-factory">SingleConnectionFactory</a></span></dt><dt><span class="section"><a href="jms.html#jdbc-connection-factory-caching">CachingConnectionFactory</a></span></dt></dl></dd><dt><span class="section"><a href="jms.html#jms-destinations">29.2.3. 目标管理</a></span></dt><dt><span class="section"><a href="jms.html#jms-mdp">29.2.4. 消息监听器容器</a></span></dt><dd><dl><dt><span class="section"><a href="jms.html#jms-mdp-simple">SimpleMessageListenerContainer</a></span></dt><dt><span class="section"><a href="jms.html#jms-mdp-default">DefaultMessageListenerContainer</a></span></dt></dl></dd><dt><span class="section"><a href="jms.html#jms-tx">29.2.5. 事务管理</a></span></dt></dl></dd><dt><span class="section"><a href="jms.html#jms-sending">29.3. 发送消息</a></span></dt><dd><dl><dt><span class="section"><a href="jms.html#jms-msg-conversion">29.3.1. 使用消息转换器</a></span></dt><dt><span class="section"><a href="jms.html#jms-callbacks">29.3.2. SessionCallback 和 ProducerCallback</a></span></dt></dl></dd><dt><span class="section"><a href="jms.html#jms-receiving">29.4. 接收消息</a></span></dt><dd><dl><dt><span class="section"><a href="jms.html#jms-receiving-sync">29.4.1. 同步接收</a></span></dt><dt><span class="section"><a href="jms.html#jms-asynchronousMessageReception">29.4.2. 异步接收-消息驱动POJO</a></span></dt><dt><span class="section"><a href="jms.html#jms-receiving-async-session-aware-message-listener">29.4.3. SessionAwareMessageListener 接口</a></span></dt><dt><span class="section"><a href="jms.html#jms-receiving-async-message-listener-adapter">29.4.4. MessageListenerAdapter</a></span></dt><dt><span class="section"><a href="jms.html#jms-tx-participation">29.4.5. 在事务内部处理消息</a></span></dt></dl></dd><dt><span class="section"><a href="jms.html#jms-jca-message-endpoint-manager">29.5. 对JCA消息端点的支持</a></span></dt><dt><span class="section"><a href="jms.html#jms-annotated">29.6. 注解驱动的监听器端点</a></span></dt><dd><dl><dt><span class="section"><a href="jms.html#jms-annotated-support">29.6.1. 启用监听器端点注解</a></span></dt><dt><span class="section"><a href="jms.html#jms-annotated-programmatic-registration">29.6.2. 编程式端点注册</a></span></dt><dt><span class="section"><a href="jms.html#jms-annotated-method-signature">29.6.3. 注解端点方法签名</a></span></dt><dt><span class="section"><a href="jms.html#jms-annotated-response">29.6.4. 响应管理</a></span></dt></dl></dd><dt><span class="section"><a href="jms.html#jms-namespace">29.7. JMS Namespace 支持</a></span></dt></dl></dd><dt><span class="chapter"><a href="jmx.html">30. JMX</a></span></dt><dd><dl><dt><span class="section"><a href="jmx.html#jmx-introduction">30.1. 简介</a></span></dt><dt><span class="section"><a href="jmx.html#jmx-exporting">30.2. 将Bean暴露到JMX</a></span></dt><dd><dl><dt><span class="section"><a href="jmx.html#jmx-exporting-mbeanserver">30.2.1. 创建 MBeanServer</a></span></dt><dt><span class="section"><a href="jmx.html#jmx-mbean-server">30.2.2. 重用已有的 MBeanServer</a></span></dt><dt><span class="section"><a href="jmx.html#jmx-exporting-lazy">30.2.3. Mbean的延迟初始化</a></span></dt><dt><span class="section"><a href="jmx.html#jmx-exporting-auto">30.2.4. Mbean 的自动注册</a></span></dt><dt><span class="section"><a href="jmx.html#jmx-exporting-registration-behavior">30.2.5. 控制的注册行为</a></span></dt></dl></dd><dt><span class="section"><a href="jmx.html#jmx-interface">30.3. 控制bean 的管理接口</a></span></dt><dd><dl><dt><span class="section"><a href="jmx.html#jmx-interface-assembler">30.3.1. MBeanInfoAssembler 接口</a></span></dt><dt><span class="section"><a href="jmx.html#jmx-interface-metadata">30.3.2. 使用源码级别的元数据 (Java 注解)</a></span></dt><dt><span class="section"><a href="jmx.html#jmx-interface-metadata-types">30.3.3. 源代码级别的元数据类型</a></span></dt><dt><span class="section"><a href="jmx.html#jmx-interface-autodetect">30.3.4. AutodetectCapableMBeanInfoAssembler 接口</a></span></dt><dt><span class="section"><a href="jmx.html#jmx-interface-java">30.3.5. 使用 Java 接口定义管理接口</a></span></dt><dt><span class="section"><a href="jmx.html#jmx-interface-methodnames">30.3.6. 使用 MethodNameBasedMBeanInfoAssembler</a></span></dt></dl></dd><dt><span class="section"><a href="jmx.html#jmx-naming">30.4. 控制Bean的ObjectName</a></span></dt><dd><dl><dt><span class="section"><a href="jmx.html#jmx-naming-properties">30.4.1. 从属性中读取 ObjectName</a></span></dt><dt><span class="section"><a href="jmx.html#jmx-naming-metadata">30.4.2. 使用 MetadataNamingStrategy</a></span></dt><dt><span class="section"><a href="jmx.html#jmx-context-mbeanexport">30.4.3. 配置基于注解的MBean输出</a></span></dt></dl></dd><dt><span class="section"><a href="jmx.html#jmx-jsr160">30.5. JSR 160 连接器</a></span></dt><dd><dl><dt><span class="section"><a href="jmx.html#jmx-jsr160-server">30.5.1. 服务器端连接器</a></span></dt><dt><span class="section"><a href="jmx.html#jmx-jsr160-client">30.5.2. 客户端连接器</a></span></dt><dt><span class="section"><a href="jmx.html#jmx-jsr160-protocols">30.5.3. Burlap/Hessian/SOAP上的JMX</a></span></dt></dl></dd><dt><span class="section"><a href="jmx.html#jmx-proxy">30.6. 通过代理访问 Mbean</a></span></dt><dt><span class="section"><a href="jmx.html#jmx-notifications">30.7. 通知</a></span></dt><dd><dl><dt><span class="section"><a href="jmx.html#jmx-notifications-listeners">30.7.1. 为通知注册监听器</a></span></dt><dt><span class="section"><a href="jmx.html#jmx-notifications-publishing">30.7.2. 发布通知</a></span></dt></dl></dd><dt><span class="section"><a href="jmx.html#jmx-resources">30.8. 更多资源</a></span></dt></dl></dd><dt><span class="chapter"><a href="cci.html">31. JCA CCI</a></span></dt><dd><dl><dt><span class="section"><a href="cci.html#cci-introduction">31.1. 简介</a></span></dt><dt><span class="section"><a href="cci.html#cci-config">31.2. 配置 CCI</a></span></dt><dd><dl><dt><span class="section"><a href="cci.html#cci-config-connector">31.2.1. 连接器配置</a></span></dt><dt><span class="section"><a href="cci.html#cci-config-connectionfactory">31.2.2. Spring中的 ConnectionFactory 配置</a></span></dt><dt><span class="section"><a href="cci.html#cci-config-cci-connections">31.2.3. 配置 CCI 连接</a></span></dt><dt><span class="section"><a href="cci.html#cci-config-single-connection">31.2.4. 使用单个 CCI 连接</a></span></dt></dl></dd><dt><span class="section"><a href="cci.html#cci-using">31.3. 使用Spring的 CCI 访问支持</a></span></dt><dd><dl><dt><span class="section"><a href="cci.html#cci-record-creator">31.3.1. 记录转换</a></span></dt><dt><span class="section"><a href="cci.html#cci-using-template">31.3.2. CciTemplate</a></span></dt><dt><span class="section"><a href="cci.html#cci-using-dao">31.3.3. DAO支持</a></span></dt><dt><span class="section"><a href="cci.html#automatic-output-generation">31.3.4. 生成自动输出记录</a></span></dt><dt><span class="section"><a href="cci.html#template-summary">31.3.5. 总结</a></span></dt><dt><span class="section"><a href="cci.html#cci-straight">31.3.6. 直接使用 CCI 连接和交互</a></span></dt><dt><span class="section"><a href="cci.html#cci-template-example">31.3.7. CciTemplate 使用示例</a></span></dt></dl></dd><dt><span class="section"><a href="cci.html#cci-object">31.4. 将CCI访问建模为操作对象</a></span></dt><dd><dl><dt><span class="section"><a href="cci.html#cci-object-mapping-record">31.4.1. MappingRecordOperation</a></span></dt><dt><span class="section"><a href="cci.html#cci-object-mapping-comm-area">31.4.2. MappingCommAreaOperation</a></span></dt><dt><span class="section"><a href="cci.html#cci-automatic-record-gen">31.4.3. 生成自动输出记录</a></span></dt><dt><span class="section"><a href="cci.html#cci-object-summary">31.4.4. 总结</a></span></dt><dt><span class="section"><a href="cci.html#cci-objects-mappring-record-example">31.4.5. MappingRecordOperation 使用示例</a></span></dt><dt><span class="section"><a href="cci.html#cci-objects-mapping-comm-area-example">31.4.6. MappingCommAreaOperation 使用示例</a></span></dt></dl></dd><dt><span class="section"><a href="cci.html#cci-tx">31.5. 事务</a></span></dt></dl></dd><dt><span class="chapter"><a href="mail.html">32. Email</a></span></dt><dd><dl><dt><span class="section"><a href="mail.html#mail-introduction">32.1. 简介</a></span></dt><dt><span class="section"><a href="mail.html#mail-usage">32.2. 用法</a></span></dt><dd><dl><dt><span class="section"><a href="mail.html#mail-usage-simple">32.2.1. MailSender 和 SimpleMailMessage 的基本用法</a></span></dt><dt><span class="section"><a href="mail.html#mail-usage-mime">32.2.2. 使用 JavaMailSender 和 MimeMessagePreparator</a></span></dt></dl></dd><dt><span class="section"><a href="mail.html#mail-javamail-mime">32.3. 使用 JavaMail MimeMessageHelper</a></span></dt><dd><dl><dt><span class="section"><a href="mail.html#mail-javamail-mime-attachments">32.3.1. 发送附件和内联资源</a></span></dt><dd><dl><dt><span class="section"><a href="mail.html#mail-javamail-mime-attachments-attachment">附件</a></span></dt><dt><span class="section"><a href="mail.html#mail-javamail-mime-attachments-inline">内联资源</a></span></dt></dl></dd><dt><span class="section"><a href="mail.html#mail-templates">32.3.2. 使用模版库创建email内容</a></span></dt><dd><dl><dt><span class="section"><a href="mail.html#mail-templates-example">一个基于Velocity的例子</a></span></dt></dl></dd></dl></dd></dl></dd><dt><span class="chapter"><a href="scheduling.html">33. 任务执行与调度</a></span></dt><dd><dl><dt><span class="section"><a href="scheduling.html#scheduling-introduction">33.1. 简介</a></span></dt><dt><span class="section"><a href="scheduling.html#scheduling-task-executor">33.2. Spring TaskExecutor抽象</a></span></dt><dd><dl><dt><span class="section"><a href="scheduling.html#scheduling-task-executor-types">33.2.1. TaskExecutor类型</a></span></dt><dt><span class="section"><a href="scheduling.html#scheduling-task-executor-usage">33.2.2. 使用 TaskExecutor</a></span></dt></dl></dd><dt><span class="section"><a href="scheduling.html#scheduling-task-scheduler">33.3. Spring TaskScheduler抽象</a></span></dt><dd><dl><dt><span class="section"><a href="scheduling.html#scheduling-trigger-interface">33.3.1. Trigger接口</a></span></dt><dt><span class="section"><a href="scheduling.html#scheduling-trigger-implementations">33.3.2. Trigger实现</a></span></dt><dt><span class="section"><a href="scheduling.html#scheduling-task-scheduler-implementations">33.3.3. TaskScheduler 实现</a></span></dt></dl></dd><dt><span class="section"><a href="scheduling.html#scheduling-annotation-support">33.4. 支持调度和异步执行的注解</a></span></dt><dd><dl><dt><span class="section"><a href="scheduling.html#scheduling-enable-annotation-support">33.4.1. 启用调度注解</a></span></dt><dt><span class="section"><a href="scheduling.html#scheduling-annotation-support-scheduled">33.4.2. @Scheduled 注解</a></span></dt><dt><span class="section"><a href="scheduling.html#scheduling-annotation-support-async">33.4.3. @Async 注解</a></span></dt><dt><span class="section"><a href="scheduling.html#scheduling-annotation-support-qualification">33.4.4. 使用@Async的Executor限定符</a></span></dt><dt><span class="section"><a href="scheduling.html#scheduling-annotation-support-exception">33.4.5. @Async异常管理</a></span></dt></dl></dd><dt><span class="section"><a href="scheduling.html#scheduling-task-namespace">33.5. Task命名空间</a></span></dt><dd><dl><dt><span class="section"><a href="scheduling.html#scheduling-task-namespace-scheduler">33.5.1. 'scheduler'元素</a></span></dt><dt><span class="section"><a href="scheduling.html#scheduling-task-namespace-executor">33.5.2. 'executor'元素</a></span></dt><dt><span class="section"><a href="scheduling.html#scheduling-task-namespace-scheduled-tasks">33.5.3. 'scheduled-tasks' 元素</a></span></dt></dl></dd><dt><span class="section"><a href="scheduling.html#scheduling-quartz">33.6. 使用Quartz调度器</a></span></dt><dd><dl><dt><span class="section"><a href="scheduling.html#scheduling-quartz-jobdetail">33.6.1. 使用 JobDetailFactoryBean</a></span></dt><dt><span class="section"><a href="scheduling.html#scheduling-quartz-method-invoking-job">33.6.2. 使用 MethodInvokingJobDetailFactoryBean</a></span></dt><dt><span class="section"><a href="scheduling.html#scheduling-quartz-cron">33.6.3. 使用触发器与SchedulerFactoryBean连接任务</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="dynamic-language.html">34. 动态语言支持</a></span></dt><dd><dl><dt><span class="section"><a href="dynamic-language.html#dynamic-language-introduction">34.1. 简介</a></span></dt><dt><span class="section"><a href="dynamic-language.html#dynamic-language-a-first-example">34.2. 第一个示例</a></span></dt><dt><span class="section"><a href="dynamic-language.html#dynamic-language-beans">34.3. 定义动态语言所支持的Bean</a></span></dt><dd><dl><dt><span class="section"><a href="dynamic-language.html#dynamic-language-beans-concepts">34.3.1. 常见的概念</a></span></dt><dd><dl><dt><span class="section"><a href="dynamic-language.html#dynamic-language-beans-concepts-xml-language-element">&lt;lang:language/&gt; 元素</a></span></dt><dt><span class="section"><a href="dynamic-language.html#dynamic-language-refreshable-beans">可刷新Bean</a></span></dt><dt><span class="section"><a href="dynamic-language.html#dynamic-language-beans-inline">内联动态语言源代码文件</a></span></dt><dt><span class="section"><a href="dynamic-language.html#dynamic-language-beans-ctor-injection">在动态语言支持 bean 的上下文中理解构造器注入</a></span></dt></dl></dd><dt><span class="section"><a href="dynamic-language.html#dynamic-language-beans-jruby">34.3.2. JRuby beans</a></span></dt><dt><span class="section"><a href="dynamic-language.html#dynamic-language-beans-groovy">34.3.3. Groovy beans</a></span></dt><dd><dl><dt><span class="section"><a href="dynamic-language.html#dynamic-language-beans-groovy-customizer">自定义通过回调的 Groovy 对象</a></span></dt></dl></dd><dt><span class="section"><a href="dynamic-language.html#dynamic-language-beans-bsh">34.3.4. BeanShell beans</a></span></dt></dl></dd><dt><span class="section"><a href="dynamic-language.html#dynamic-language-scenarios">34.4. 使用场景</a></span></dt><dd><dl><dt><span class="section"><a href="dynamic-language.html#dynamic-language-scenarios-controllers">34.4.1. 脚本化的Spring MVC控制器</a></span></dt><dt><span class="section"><a href="dynamic-language.html#dynamic-language-scenarios-validators">34.4.2. 脚本化校验器</a></span></dt></dl></dd><dt><span class="section"><a href="dynamic-language.html#dynamic-language-final-notes">34.5. 零零碎碎</a></span></dt><dd><dl><dt><span class="section"><a href="dynamic-language.html#dynamic-language-final-notes-aop">34.5.1. AOP-通知脚本化bean</a></span></dt><dt><span class="section"><a href="dynamic-language.html#dynamic-language-final-notes-scopes">34.5.2. 作用域</a></span></dt></dl></dd><dt><span class="section"><a href="dynamic-language.html#dynamic-language-resources">34.6. 更多资源</a></span></dt></dl></dd><dt><span class="chapter"><a href="cache.html">35. 缓存抽象</a></span></dt><dd><dl><dt><span class="section"><a href="cache.html#cache-introduction">35.1. 简介</a></span></dt><dt><span class="section"><a href="cache.html#cache-strategies">35.2. 理解缓存抽象</a></span></dt><dt><span class="section"><a href="cache.html#cache-annotations">35.3. 声明式基于注解的缓存</a></span></dt><dd><dl><dt><span class="section"><a href="cache.html#cache-annotations-cacheable">35.3.1. @Cacheable 注解</a></span></dt><dd><dl><dt><span class="section"><a href="cache.html#cache-annotations-cacheable-default-key">默认Key生成</a></span></dt><dt><span class="section"><a href="cache.html#cache-annotations-cacheable-key">自定义Key生成声明</a></span></dt><dt><span class="section"><a href="cache.html#cache-annotations-cacheable-default-cache-resolver">默认缓存方案</a></span></dt><dt><span class="section"><a href="cache.html#cache-annotations-cacheable-cache-resolver">自定义缓存方案</a></span></dt><dt><span class="section"><a href="cache.html#cache-annotations-cacheable-condition">条件缓存</a></span></dt><dt><span class="section"><a href="cache.html#cache-spel-context">有效缓存SpEL估值上下文</a></span></dt></dl></dd><dt><span class="section"><a href="cache.html#cache-annotations-put">35.3.2. @CachePut annotation</a></span></dt><dt><span class="section"><a href="cache.html#cache-annotations-evict">35.3.3. @CacheEvict annotation</a></span></dt><dt><span class="section"><a href="cache.html#cache-annotations-caching">35.3.4. @Caching 注解</a></span></dt><dt><span class="section"><a href="cache.html#cache-annotations-config">35.3.5. @CacheConfig 注解</a></span></dt><dt><span class="section"><a href="cache.html#cache-annotation-enable">35.3.6. 启用缓存注解</a></span></dt><dt><span class="section"><a href="cache.html#cache-annotation-stereotype">35.3.7. 使用自定义注解</a></span></dt></dl></dd><dt><span class="section"><a href="cache.html#cache-jsr-107">35.4. JCache (JSR-107) 注解</a></span></dt><dd><dl><dt><span class="section"><a href="cache.html#cache-jsr-107-summary">35.4.1. 功能总结</a></span></dt><dt><span class="section"><a href="cache.html#_enabling_jsr_107_support">35.4.2. 启用 JSR 107 支持</a></span></dt></dl></dd><dt><span class="section"><a href="cache.html#cache-declarative-xml">35.5. 声明性 基于XML 缓存</a></span></dt><dt><span class="section"><a href="cache.html#cache-store-configuration">35.6. 配置缓存存储</a></span></dt><dd><dl><dt><span class="section"><a href="cache.html#cache-store-configuration-jdk">35.6.1. 基于JDK ConcurrentMap 缓存</a></span></dt><dt><span class="section"><a href="cache.html#cache-store-configuration-ehcache">35.6.2. 基于EhCache 的缓存</a></span></dt><dt><span class="section"><a href="cache.html#cache-store-configuration-guava">35.6.3. Guava Cache</a></span></dt><dt><span class="section"><a href="cache.html#cache-store-configuration-gemfire">35.6.4. 基于GemFire 的缓存</a></span></dt><dt><span class="section"><a href="cache.html#cache-store-configuration-jsr107">35.6.5. JSR 107 缓存</a></span></dt><dt><span class="section"><a href="cache.html#cache-store-configuration-noop">35.6.6. 处理没有后向存储的缓存</a></span></dt></dl></dd><dt><span class="section"><a href="cache.html#cache-plug">35.7. 插入不同的后端缓存</a></span></dt><dt><span class="section"><a href="cache.html#cache-specific-config">35.8. 如何设置 TTL/TTI/回收策略/XXX 功能?</a></span></dt></dl></dd></dl></dd><dt><span class="part"><a href="spring-appendices.html">VIII. 附录</a></span></dt><dd><dl><dt><span class="chapter"><a href="migration-4.x.html">36. 迁移到 Spring 框架 4.x</a></span></dt><dt><span class="chapter"><a href="annotation-programming-model.html">37. Spring注解编程模型</a></span></dt><dt><span class="chapter"><a href="classic-spring.html">38. Spring典型用法</a></span></dt><dd><dl><dt><span class="section"><a href="classic-spring.html#classic-spring-orm">38.1. 经典的 ORM 用法</a></span></dt><dd><dl><dt><span class="section"><a href="classic-spring.html#classic-spring-hibernate">38.1.1. Hibernate</a></span></dt><dd><dl><dt><span class="section"><a href="classic-spring.html#orm-hibernate-template">HibernateTemplate</a></span></dt><dt><span class="section"><a href="classic-spring.html#orm-hibernate-daos">实现没有回调的基于Spring的DAO</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="classic-spring.html#classic-spring-jms">38.2. JMS 用法</a></span></dt><dd><dl><dt><span class="section"><a href="classic-spring.html#classic-spring-jms-template">38.2.1. JmsTemplate</a></span></dt><dt><span class="section"><a href="classic-spring.html#classic-spring-aysnc-messages">38.2.2. 异步消息接收</a></span></dt><dt><span class="section"><a href="classic-spring.html#classic-spring-jms-connections">38.2.3. 连接</a></span></dt><dt><span class="section"><a href="classic-spring.html#classic-spring-jms-tx-management">38.2.4. 事务管理</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="classic-aop-spring.html">39. 经典Spring AOP用法</a></span></dt><dd><dl><dt><span class="section"><a href="classic-aop-spring.html#classic-aop-api-pointcuts">39.1. Spring中的切入点API</a></span></dt><dd><dl><dt><span class="section"><a href="classic-aop-spring.html#classic-aop-api-concepts">39.1.1. 概念</a></span></dt><dt><span class="section"><a href="classic-aop-spring.html#classic-aop-api-pointcut-ops">39.1.2. 切入点上的操作</a></span></dt><dt><span class="section"><a href="classic-aop-spring.html#classic-aop-api-pointcuts-aspectj">39.1.3. AspectJ 表达切入点</a></span></dt><dt><span class="section"><a href="classic-aop-spring.html#classic-aop-api-pointcuts-impls">39.1.4. 便捷的切入点实现</a></span></dt><dd><dl><dt><span class="section"><a href="classic-aop-spring.html#classic-aop-api-pointcuts-static">静态切入点</a></span></dt><dt><span class="section"><a href="classic-aop-spring.html#classic-aop-api-pointcuts-dynamic">动态切入点</a></span></dt></dl></dd><dt><span class="section"><a href="classic-aop-spring.html#classic-aop-api-pointcuts-superclasses">39.1.5. 切入点超类</a></span></dt><dt><span class="section"><a href="classic-aop-spring.html#classic-aop-api-pointcuts-custom">39.1.6. 自定义的切入点</a></span></dt></dl></dd><dt><span class="section"><a href="classic-aop-spring.html#classic-aop-api-advice">39.2. Spring中的通知API</a></span></dt><dd><dl><dt><span class="section"><a href="classic-aop-spring.html#classic-aop-api-advice-lifecycle">39.2.1. 通知的生命周期</a></span></dt><dt><span class="section"><a href="classic-aop-spring.html#classic-aop-api-advice-types">39.2.2. Spring中的通知类型</a></span></dt><dd><dl><dt><span class="section"><a href="classic-aop-spring.html#classic-aop-api-advice-around">拦截环绕通知</a></span></dt><dt><span class="section"><a href="classic-aop-spring.html#classic-aop-api-advice-before">前置通知</a></span></dt><dt><span class="section"><a href="classic-aop-spring.html#classic-aop-api-advice-throws">异常通知</a></span></dt><dt><span class="section"><a href="classic-aop-spring.html#classic-aop-api-advice-after-returning">正常返回通知</a></span></dt><dt><span class="section"><a href="classic-aop-spring.html#classic-aop-api-advice-introduction">引入通知[Introduction advice]</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="classic-aop-spring.html#classic-aop-api-advisor">39.3. Spring的通知器API</a></span></dt><dt><span class="section"><a href="classic-aop-spring.html#classic-aop-pfb">39.4. 使用 ProxyFactoryBean 创建 AOP 代理</a></span></dt><dd><dl><dt><span class="section"><a href="classic-aop-spring.html#classic-aop-pfb-1">39.4.1. 基础知识</a></span></dt><dt><span class="section"><a href="classic-aop-spring.html#classic-aop-pfb-2">39.4.2. JavaBean 属性</a></span></dt><dt><span class="section"><a href="classic-aop-spring.html#classic-aop-pfb-proxy-types">39.4.3. 基于JDK和CGLIB的代理</a></span></dt><dt><span class="section"><a href="classic-aop-spring.html#classic-aop-api-proxying-intf">39.4.4. 代理接口</a></span></dt><dt><span class="section"><a href="classic-aop-spring.html#classic-aop-api-proxying-class">39.4.5. 代理类</a></span></dt><dt><span class="section"><a href="classic-aop-spring.html#classic-aop-global-advisors">39.4.6. 使用'全局'通知器</a></span></dt></dl></dd><dt><span class="section"><a href="classic-aop-spring.html#classic-aop-concise-proxy">39.5. 简洁的代理定义</a></span></dt><dt><span class="section"><a href="classic-aop-spring.html#classic-aop-prog">39.6. 使用ProxyFactory 以编程方式创建 AOP 代理</a></span></dt><dt><span class="section"><a href="classic-aop-spring.html#classic-aop-api-advised">39.7. 操作通知对象</a></span></dt><dt><span class="section"><a href="classic-aop-spring.html#classic-aop-autoproxy">39.8. 使用"autoproxy"设施</a></span></dt><dd><dl><dt><span class="section"><a href="classic-aop-spring.html#classic-aop-autoproxy-choices">39.8.1. Autoproxy bean定义</a></span></dt><dd><dl><dt><span class="section"><a href="classic-aop-spring.html#classic-aop-api-autoproxy">BeanNameAutoProxyCreator</a></span></dt><dt><span class="section"><a href="classic-aop-spring.html#classic-aop-api-autoproxy-default">DefaultAdvisorAutoProxyCreator</a></span></dt><dt><span class="section"><a href="classic-aop-spring.html#classic-aop-api-autoproxy-abstract">AbstractAdvisorAutoProxyCreator</a></span></dt></dl></dd><dt><span class="section"><a href="classic-aop-spring.html#classic-aop-autoproxy-metadata">39.8.2. 使用元数据驱动的自动代理</a></span></dt></dl></dd><dt><span class="section"><a href="classic-aop-spring.html#classic-aop-targetsource">39.9. 使用 TargetSources</a></span></dt><dd><dl><dt><span class="section"><a href="classic-aop-spring.html#classic-aop-ts-swap">39.9.1. 热插拔目标源</a></span></dt><dt><span class="section"><a href="classic-aop-spring.html#classic-aop-ts-pool">39.9.2. 池化目标源</a></span></dt><dt><span class="section"><a href="classic-aop-spring.html#classic-aop-ts-prototype">39.9.3. 原型化目标源</a></span></dt><dt><span class="section"><a href="classic-aop-spring.html#classic-aop-ts-threadlocal">39.9.4. ThreadLocal目标源</a></span></dt></dl></dd><dt><span class="section"><a href="classic-aop-spring.html#classic-aop-extensibility">39.10. 定义新的通知类型</a></span></dt><dt><span class="section"><a href="classic-aop-spring.html#classic-aop-api-resources">39.11. 更多资源</a></span></dt></dl></dd><dt><span class="chapter"><a href="xsd-configuration.html">40. 基于XML Schema的配置</a></span></dt><dd><dl><dt><span class="section"><a href="xsd-configuration.html#xsd-config-introduction">40.1. 简介</a></span></dt><dt><span class="section"><a href="xsd-configuration.html#xsd-config-body">40.2. 基于XML Schema的配置</a></span></dt><dd><dl><dt><span class="section"><a href="xsd-configuration.html#xsd-config-body-referencing">40.2.1. 引用schema</a></span></dt><dt><span class="section"><a href="xsd-configuration.html#xsd-config-body-schemas-util">40.2.2. util schema</a></span></dt><dd><dl><dt><span class="section"><a href="xsd-configuration.html#xsd-config-body-schemas-util-constant">&lt;util:constant/&gt;</a></span></dt><dt><span class="section"><a href="xsd-configuration.html#xsd-config-body-schemas-util-property-path">&lt;util:property-path/&gt;</a></span></dt><dt><span class="section"><a href="xsd-configuration.html#xsd-config-body-schemas-util-properties">&lt;util:properties/&gt;</a></span></dt><dt><span class="section"><a href="xsd-configuration.html#xsd-config-body-schemas-util-list">&lt;util:list/&gt;</a></span></dt><dt><span class="section"><a href="xsd-configuration.html#xsd-config-body-schemas-util-map">&lt;util:map/&gt;</a></span></dt><dt><span class="section"><a href="xsd-configuration.html#xsd-config-body-schemas-util-set">&lt;util:set/&gt;</a></span></dt></dl></dd><dt><span class="section"><a href="xsd-configuration.html#xsd-config-body-schemas-jee">40.2.3. jee schema</a></span></dt><dd><dl><dt><span class="section"><a href="xsd-configuration.html#xsd-config-body-schemas-jee-jndi-lookup">&lt;jee:jndi-lookup/&gt; (简单)</a></span></dt><dt><span class="section"><a href="xsd-configuration.html#xsd-config-body-schemas-jee-jndi-lookup-environment-single">&lt;jee:jndi-lookup/&gt; (使用单一JNDI环境设置)</a></span></dt><dt><span class="section"><a href="xsd-configuration.html#xsd-config-body-schemas-jee-jndi-lookup-evironment-multiple">&lt;jee:jndi-lookup/&gt; (使用多个JNDI环境设置)</a></span></dt><dt><span class="section"><a href="xsd-configuration.html#xsd-config-body-schemas-jee-jndi-lookup-complex">&lt;jee:jndi-lookup/&gt; (复杂)</a></span></dt><dt><span class="section"><a href="xsd-configuration.html#xsd-config-body-schemas-jee-local-slsb">&lt;jee:local-slsb/&gt; (简单)</a></span></dt><dt><span class="section"><a href="xsd-configuration.html#xsd-config-body-schemas-jee-local-slsb-complex">&lt;jee:local-slsb/&gt; (复杂)</a></span></dt><dt><span class="section"><a href="xsd-configuration.html#xsd-config-body-schemas-jee-remote-slsb">&lt;jee:remote-slsb/&gt;</a></span></dt></dl></dd><dt><span class="section"><a href="xsd-configuration.html#xsd-config-body-schemas-lang">40.2.4. lang schema</a></span></dt><dt><span class="section"><a href="xsd-configuration.html#xsd-config-body-schemas-jms">40.2.5. jms schema</a></span></dt><dt><span class="section"><a href="xsd-configuration.html#xsd-config-body-schemas-tx">40.2.6. tx (事务) schema</a></span></dt><dt><span class="section"><a href="xsd-configuration.html#xsd-config-body-schemas-aop">40.2.7. aop schema</a></span></dt><dt><span class="section"><a href="xsd-configuration.html#xsd-config-body-schemas-context">40.2.8. context schema</a></span></dt><dd><dl><dt><span class="section"><a href="xsd-configuration.html#xsd-config-body-schemas-context-pphc">&lt;property-placeholder/&gt;</a></span></dt><dt><span class="section"><a href="xsd-configuration.html#xsd-config-body-schemas-context-ac">&lt;annotation-config/&gt;</a></span></dt><dt><span class="section"><a href="xsd-configuration.html#xsd-config-body-schemas-context-component-scan">&lt;component-scan/&gt;</a></span></dt><dt><span class="section"><a href="xsd-configuration.html#xsd-config-body-schemas-context-ltw">&lt;load-time-weaver/&gt;</a></span></dt><dt><span class="section"><a href="xsd-configuration.html#xsd-config-body-schemas-context-sc">&lt;spring-configured/&gt;</a></span></dt><dt><span class="section"><a href="xsd-configuration.html#xsd-config-body-schemas-context-mbe">&lt;mbean-export/&gt;</a></span></dt></dl></dd><dt><span class="section"><a href="xsd-configuration.html#xsd-config-body-schemas-tool">40.2.9. tool schema</a></span></dt><dt><span class="section"><a href="xsd-configuration.html#xsd-config-body-schemas-jdbc">40.2.10. jdbc schema</a></span></dt><dt><span class="section"><a href="xsd-configuration.html#xsd-config-body-schemas-cache">40.2.11. cache schema</a></span></dt><dt><span class="section"><a href="xsd-configuration.html#xsd-config-body-schemas-beans">40.2.12. beans schema</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="xml-custom.html">41. 编写可扩展的 XML </a></span></dt><dd><dl><dt><span class="section"><a href="xml-custom.html#extensible-xml-introduction">41.1. 简介</a></span></dt><dt><span class="section"><a href="xml-custom.html#extensible-xml-schema">41.2. 编写schema</a></span></dt><dt><span class="section"><a href="xml-custom.html#extensible-xml-namespacehandler">41.3. 编写 NamespaceHandler</a></span></dt><dt><span class="section"><a href="xml-custom.html#extensible-xml-parser">41.4. BeanDefinitionParser</a></span></dt><dt><span class="section"><a href="xml-custom.html#extensible-xml-registration">41.5. 注册处理程序和schema</a></span></dt><dd><dl><dt><span class="section"><a href="xml-custom.html#extensible-xml-registration-spring-handlers">41.5.1. 'META-INF/spring.handlers'</a></span></dt><dt><span class="section"><a href="xml-custom.html#extensible-xml-registration-spring-schemas">41.5.2. 'META-INF/spring.schemas'</a></span></dt></dl></dd><dt><span class="section"><a href="xml-custom.html#extensible-xml-using">41.6. 在Spring XML配置中使用自定义扩展</a></span></dt><dt><span class="section"><a href="xml-custom.html#extensible-xml-meat">41.7. 更丰满的例子</a></span></dt><dd><dl><dt><span class="section"><a href="xml-custom.html#extensible-xml-custom-nested">41.7.1. 在自定义标签中嵌套自定义标签</a></span></dt><dt><span class="section"><a href="xml-custom.html#extensible-xml-custom-just-attributes">41.7.2. 在'normal'元素上自定义属性 </a></span></dt></dl></dd><dt><span class="section"><a href="xml-custom.html#extensible-xml-resources">41.8. 更多资源</a></span></dt></dl></dd><dt><span class="chapter"><a href="spring-tld.html">42. Spring JSP标签库</a></span></dt><dd><dl><dt><span class="section"><a href="spring-tld.html#spring.tld-intro">42.1. 简介</a></span></dt><dt><span class="section"><a href="spring-tld.html#spring.tld.argument">42.2. argument标签</a></span></dt><dt><span class="section"><a href="spring-tld.html#spring.tld.bind">42.3. bind标签</a></span></dt><dt><span class="section"><a href="spring-tld.html#spring.tld.escapeBody">42.4. escapeBody标签</a></span></dt><dt><span class="section"><a href="spring-tld.html#spring.tld.eval">42.5. eval标签</a></span></dt><dt><span class="section"><a href="spring-tld.html#spring.tld.hasBindErrors">42.6. hasBindErrors 标签</a></span></dt><dt><span class="section"><a href="spring-tld.html#spring.tld.htmlEscape">42.7. tmlEscape 标签</a></span></dt><dt><span class="section"><a href="spring-tld.html#spring.tld.message">42.8. message标签</a></span></dt><dt><span class="section"><a href="spring-tld.html#spring.tld.nestedPath">42.9. nestedPath 标签</a></span></dt><dt><span class="section"><a href="spring-tld.html#spring.tld.param">42.10. param 标签</a></span></dt><dt><span class="section"><a href="spring-tld.html#spring.tld.theme">42.11. theme 标签</a></span></dt><dt><span class="section"><a href="spring-tld.html#spring.tld.transform">42.12. transform 标签</a></span></dt><dt><span class="section"><a href="spring-tld.html#spring.tld.url">42.13. url标签</a></span></dt></dl></dd><dt><span class="chapter"><a href="spring-form-tld.html">43. spring-form JSP标签库</a></span></dt><dd><dl><dt><span class="section"><a href="spring-form-tld.html#spring-form.tld-intro">43.1. 简介</a></span></dt><dt><span class="section"><a href="spring-form-tld.html#spring-form.tld.button">43.2. button标签</a></span></dt><dt><span class="section"><a href="spring-form-tld.html#spring-form.tld.checkbox">43.3. checkbox标签</a></span></dt><dt><span class="section"><a href="spring-form-tld.html#spring-form.tld.checkboxes">43.4. checkboxes标签</a></span></dt><dt><span class="section"><a href="spring-form-tld.html#spring-form.tld.errors">43.5. errors标签</a></span></dt><dt><span class="section"><a href="spring-form-tld.html#spring-form.tld.form">43.6. form标签</a></span></dt><dt><span class="section"><a href="spring-form-tld.html#spring-form.tld.hidden">43.7. hidden标签</a></span></dt><dt><span class="section"><a href="spring-form-tld.html#spring-form.tld.input">43.8. input标签</a></span></dt><dt><span class="section"><a href="spring-form-tld.html#spring-form.tld.label">43.9. label标签</a></span></dt><dt><span class="section"><a href="spring-form-tld.html#spring-form.tld.option">43.10. option标签</a></span></dt><dt><span class="section"><a href="spring-form-tld.html#spring-form.tld.options">43.11. options标签</a></span></dt><dt><span class="section"><a href="spring-form-tld.html#spring-form.tld.password">43.12. password标签</a></span></dt><dt><span class="section"><a href="spring-form-tld.html#spring-form.tld.radiobutton">43.13. radiobutton标签</a></span></dt><dt><span class="section"><a href="spring-form-tld.html#spring-form.tld.radiobuttons">43.14. radiobuttons标签</a></span></dt><dt><span class="section"><a href="spring-form-tld.html#spring-form.tld.select">43.15. select标签</a></span></dt><dt><span class="section"><a href="spring-form-tld.html#spring-form.tld.textarea">43.16. textarea标签</a></span></dt></dl></dd></dl></dd></dl></div>
</div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left">&nbsp;</td><td width="20%" align="center">&nbsp;</td><td width="40%" align="right">&nbsp;<a accesskey="n" href="spring-introduction.html">下一页</a></td></tr><tr><td width="40%" align="left" valign="top">&nbsp;</td><td width="20%" align="center">&nbsp;</td><td width="40%" align="right" valign="top">&nbsp;第一部分.&nbsp;Spring Framework概述</td></tr></table></div> 
</body>
</html>